此代码:http://ajaxian.com/archives/attack-of-the-ie-conditional-comment
var ie = (function(){
var undef, v = 3, div = document.createElement('div');
while (
div.innerHTML = '<!--[if gt IE '+(++v)+']><i></i>< ![endif]-->',
div.getElementsByTagName('i')[0]
);
return v > 4 ? v : undef;
}());
您能否向我解释为什么这个while
循环有效?这甚至是正确的语法吗?
编辑:我确实理解这段代码正在尝试做什么,但语法对我来说并不明显..
答案 0 :(得分:1)
它起作用是因为第一个语句被执行,并且由于逗号运算符,只考虑第二个语句用于评估,评估为true
或false
。
答案 1 :(得分:0)
此while
循环是正确的,因为while
语句由,
分隔,因此最后一个语句的值将用作while的条件。
只要div.getElementsByTagName('i')[0]
为null
或undefined
,此while循环就会结束。