var getElementById = function(id) {
var el = document.getElementById(id);
if (! +"\v1") {
if (el && el.id === id) {
return el
} else {
var els = document.all[id], n = els.length;
for (var i = 0; i < n; i++) {
if (els[i].id === id) {
return els[i]
}
}
}
}
return el;
}
这里的“if (! +"\v1") {}” 是什么意思?为什么这么写啊?
你确定你的这个跑起来不报错的?看着怪怪的 还有 === 的?
由于没有全部代码我只能估计,v1是不个变量,这里测试这个变量是否存在
这个是判断是否在IE中
IE里不能把 "\v" 处理成垂直符,所以在IE里它就是表示"\v"这个字符串。
所以"\v1"为字符串。
前面的+号把后面的字符串转换成数字,由于"\v1"在IE里为字符串
所以 +"\v1" 转换失败,其值为NaN
所以 !+"\v1"的值为 true
所以在IE里 if(!+"\v1")