Javascript Can';t填充名为'status'的数组`
我正在尝试做一些非常简单的事情——用Javascript初始化数组。而且它在谷歌浏览器中不起作用。代码如下:Javascript Can';t填充名为'status'的数组`,javascript,Javascript,我正在尝试做一些非常简单的事情——用Javascript初始化数组。而且它在谷歌浏览器中不起作用。代码如下: status = []; for(i=0; i < 8; i++) status[i]=false; alert(status.length); //It says 0 when it should say 8 status=[]; 对于(i=0;i
status = [];
for(i=0; i < 8; i++)
status[i]=false;
alert(status.length); //It says 0 when it should say 8
status=[];
对于(i=0;i<8;i++)
状态[i]=错误;
警报(状态.长度)//当它应该说8时,它说0
给出了什么?您的
状态变量的赋值与属性冲突
Chrome只是拒绝分配任务
属性设置或获取浏览器底部状态栏中的文本
我建议您重命名变量或使用匿名函数创建新的作用域,还请记住始终使用var
声明变量:
(function () {
var status = [];
for (var i = 0; i < 8; i++)
status[i] = false;
alert(status.length);
})();
(函数(){
var状态=[];
对于(变量i=0;i<8;i++)
状态[i]=错误;
警报(状态.长度);
})();
更改变量名称。看起来像是地位,而Chrome使其不可更改
.
我也没想到。这里的问题是状态的附加内容。您正在全局/窗口范围外使用它
回到好的ole时代,我们能够在状态栏中设置文本。您将如何设置为字符串值。因此,您所做的不是设置变量,而是更改浏览器状态栏的字符串 你意识到,reason=reasonT
将永远不会被调用,因为您返回它前面的行?@MattBurland我调用isReady(true)
或isReady(false,“某些字符串”)
或只是isReady()
来检查实际值,但是无论哪种方式,在控制台typeof status
中,甚至没有调用isReady
都可以说是一个字符串@jeff,感谢您指出了这一点。您的代码对我来说是有效的:它在小提琴中起作用,因为status
是一个局部变量,而不是全局变量。@Braiam我不记得以前的注释历史,但我想我正在考虑另一种方式的合并。其他问题是较老的、较短的(简单的代码示例)、较高的投票率,或者两者兼而有之。。。。我完全忘记了窗口的状态。伙计,我很高兴它不再起作用了,人们过去常常滥用它!这很可能就是这里发生的事情我们都。。。我已经将变量更改为status_ready,现在可以正常工作了。