所以我在这里遇到了奇怪的问题。我有一个数组 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]);
}
}
最佳答案
使用不同的变量名(或者更好的是,根本不使用全局变量)。有一个 window.status
property已经,显然有些东西不允许你用自己的影子(这让我有点惊讶;我想知道数组是否被强制转换为赋值字符串或其他东西)。在全局范围内,var
在 window
对象上创建属性,这就是 window.status
相关的原因。
This example ( source ) 复制了你的问题(对我来说,使用 Chrome)和 this example ( source ) 仅更改名称显示正确的警报系列。
请注意,这是特定于浏览器的。在 Firefox 上,即使是您的旧代码也会向我显示正确的一系列警报。例如,Firefox 允许我们重新定义 window.status
,但 Chrome 不允许。
关于Javascript 字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10548766/