【发布时间】:2018-09-26 13:09:28
【问题描述】:
给出以下简单的 Javascript 代码:
var a = [ 1, 2, 3 ]
for ( var i in a ) {
console.log(a[i-1], a[i], a[i+1]);
}
为什么会在下面产生奇怪的输出?
undefined 1 undefined
1 2 undefined
2 3 undefined
第一行的第一个undefined 和最后一行的最后一个undefined 是因为越界访问。但是另外两个undefined 是从哪里来的呢?
【问题讨论】:
-
这个问题不是其他两个问题的重复。它与隐式转换和迭代数组一样多。
i-1正常工作而i+1不能正常工作的问题与 Javascript 如何选择在混合表达式中进行转换有关,正如我在回答中指出的那样,即使没有数组,您也会遇到类似的问题。
标签: javascript arrays implicit-conversion