我试图在JavaScript中对一个名为 name
的数组进行控制台记录,但它没有按预期工作。我正在尝试使用 chrome 29
版本,但firefox
没有问题是否限制使用它。
使用for循环打印名为 name
的数组:
var name = ["Hello", "foo", "test", "tried"];
for (var i = 0; i < name.length; i++) {
console.log(name[i]);
}
结果:
使用for循环打印名为 test
的数组:
var test = ["Hello", "foo", "test", "tried"];
for (var i = 0; i < test.length; i++) {
console.log(test[i]);
}
结果:
答案 0 :(得分:4)
name
是window.name
的简写,是包含当前窗口名称的属性。以下内容:
var name = ["Hello", "foo", "test", "tried"];
不会创建新变量。而是将数组展平为字符串,并将结果分配给name
属性:
> var name = ["Hello", "foo", "test", "tried"];
undefined
> name
"Hello,foo,test,tried"
这就是造成奇怪迭代行为的原因。