所以我在这里遇到了奇怪的问题。我有一个数组status=new Array()
。然后我从0
迭代到N-1
,并指定status[i]="idle";
我尝试做警报以检查值,并将它们全部分配给字符彗差,
。谁知道什么是错的?
var status=new Array();
window.onload = function() {
for(var i=0;i<5;i++) {
status[i]="idle";
alert(status[i]);
}
}
答案 0 :(得分:7)
使用不同的变量名称(或者更好的是,根本不使用全局变量)。已经有一个window.status
property了,显然有些事情不会让你用你自己的阴影(这让我感到惊讶;我想知道数组是否被赋予了一个字符串或者某种东西)。在全局范围内,var
会在window
对象上创建属性,这就是window.status
相关的原因。
This example(source)会复制您的问题(对我而言,使用Chrome),只有更改名称的this example(source)会显示正确的警报系列
请注意,这是特定于浏览器的。在Firefox上,即使您的旧代码也会向我显示正确的警报系列。例如,Firefox允许我们重新定义window.status
,但Chrome不是。