奇怪的while循环语法
A weird while loop syntax
此代码: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
回路工作吗?这样的语法正确吗?
编辑:我确实理解这段代码要做什么,但语法对我来说并不明显。
它工作是因为第一个语句被执行,并且由于逗号操作符,只有第二个语句被考虑求值,它将求值为true
或false
。
这个while
循环是正确的,因为在while
语句中被,
分隔,所以最后一个语句的值将被用作while的条件。
当div.getElementsByTagName('i')[0]
为null
或undefined
时,while循环结束。
相关文章:
- 循环的Javascript冻结浏览器,没有语法错误
- 在javascript函数的循环中设置全局布尔变量的最佳语法
- `用于调试无尽循环的“普通语法”
- 使用ES6语法而不是“for”循环
- for循环内部If语句的JavaScript正确语法
- AngularJS - 循环遍历数组正在抛出语法错误
- Javascript 中的 C# Razor foreach 循环语法
- 为什么我应该使用 .forEach 语法而不是 for 循环语法
- JavaScript不确定for循环语法
- 循环语法的2-D数组的困难时间
- 用于循环语法和性能的javascript
- 用于Javascript中的循环语法
- Javascript是否有类似于Java的增强的for循环语法
- For循环-语法错误
- While循环语法错误
- 正确的循环语法删除对象属性,如果value = x
- 奇怪的while循环语法
- 用for循环语法创建一个函数
- Javascript 循环语法
- For循环语法错误-一次点击将通过整个循环