Javascript 变量i=[0]在for循环中,然后递增i++;-它为什么有效?
在我正在读的一本书(Jon Duckett的JavaScript&JQuery-交互式前端开发)中,有一个有趣的错误,或者(至少我认为是这样),它不会阻止代码工作:Javascript 变量i=[0]在for循环中,然后递增i++;-它为什么有效?,javascript,for-loop,type-conversion,Javascript,For Loop,Type Conversion,在我正在读的一本书(Jon Duckett的JavaScript&JQuery-交互式前端开发)中,有一个有趣的错误,或者(至少我认为是这样),它不会阻止代码工作: for (var i = [0]; i < options.length; i++) { addEvent(options[i], 'click', radioChanged); } for(var i=[0];i对象编号。。。 } 说明++运算符在递增之前将其操作数转换为数字的规范:
for (var i = [0]; i < options.length; i++) {
addEvent(options[i], 'click', radioChanged);
}
for(var i=[0];i
这是脚本的一部分,它循环遍历表单中的所有单选按钮并附加一个事件侦听器(不管它做什么)
但是
for (var i = [0]; i < options.length; i++) {
addEvent(options[i], 'click', radioChanged);
alert(i); // --> 1 2 3 ...
alert(type of i); // --> object number number ...
}
for(var i=[0];i1 2 3。。。
警报(i类型);//-->对象编号。。。
}
说明++
运算符在递增之前将其操作数转换为数字的规范:
ToNumber
(GetValue
(lhs))在对象上调用时,
GetValue
内部操作将调用toString()
,对于数组,它将连接其元素,返回'0'
@Tadek:这更像是一个令人困惑的功能。规范这样说是为了增加'1'
将导致2
,而不是'11'
。