javascript中element等于string的坑
JS编码中有一个方法的形参需要判断类型:
var test = function(ele){
if((typeof ele).toLowerCase() == 'string' || ele==''){
//do something here
}else{
}
}
正常情况下在传递一个element作为形参去执行这个方法程序应该走到else的分支中去;但是断点发现,一个的节点作为形参却走到了if中的代码,断电发现:
ele==''
竟然为true , console打出来的参数确实是一个element,typeof出来也是object。经大神提示:
var a = document.createElement('div');
a.toString = function(){
return 'test'
};
a=='test'//true
但是,这个并没有重写toString方法。为何会toString会返回””呢。
var b = document.createElement('a');
b.href='http://www.baidu.com';
b.toString() == 'http://www.baidu.com/';//true
这下全都明白了。