Javascript Can';t填充名为'status'的数组`

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

我正在尝试做一些非常简单的事情——用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<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,现在可以正常工作了。