名为status的Javascript数组在google chrome中不工作
我试图在我的javascript中创建一个名为status的数组,但它在Google Chrome中不起作用名为status的Javascript数组在google chrome中不工作,javascript,google-chrome,Javascript,Google Chrome,我试图在我的javascript中创建一个名为status的数组,但它在Google Chrome中不起作用 <html> <body> <script> var array = [1, 2, 3]; document.write("Type of [" + array + "] : " + (typeof array) + "<br />"); doc
<html>
<body>
<script>
var array = [1, 2, 3];
document.write("Type of [" + array + "] : " + (typeof array) + "<br />");
document.write("Value of array.length : " + array.length + "<br />");
document.write("<br /><br />");
var status = [1, 2, 3];
document.write("Type of [" + status + "] : " + (typeof status) + "<br />");
document.write("Value of status.length : " + status.length + "<br />");
</script>
</body>
</html>
var数组=[1,2,3];
文件。写入(“类型[“+数组+”]:“+(类型数组)+””
);
document.write(“array.length的值:“+array.length+””
);
文件。写(“
”);
var状态=[1,2,3];
文件。写入(“类型[“+状态+”]:“+(状态类型)+”
”;
文件。写入(“status.length的值:“+status.length+”
);
在上面的代码中,即使我将数组值赋给chrome中的变量status,该值仍被视为字符串类型
这是Chrome的一个bug还是一个有效的行为?这个问题已经得到了回答
功能测试(){
var数组=[1,2,3];
文件。写入(“类型[“+数组+”]:“+(类型数组)+””
);
document.write(“array.length的值:“+array.length+””
);
文件。写(“
”);
var状态=[1,2,3];
文件。写入(“类型[“+状态+”]:“+(状态类型)+”
”;
文件。写入(“status.length的值:“+status.length+”
);
}
test();
如果您尝试上面给定的代码,它将按预期工作,因为变量status的范围限制在方法status的局部范围内。在您的示例中,变量的作用域是全局的(作用域是窗口)。这个问题已经得到了回答
功能测试(){
var数组=[1,2,3];
文件。写入(“类型[“+数组+”]:“+(类型数组)+””
);
document.write(“array.length的值:“+array.length+””
);
文件。写(“
”);
var状态=[1,2,3];
文件。写入(“类型[“+状态+”]:“+(状态类型)+”
”;
文件。写入(“status.length的值:“+status.length+”
);
}
test();
如果您尝试上面给定的代码,它将按预期工作,因为变量status的范围限制在方法status的局部范围内。在您的示例中,变量的作用域是全局的(作用域是窗口)。在javascript中,我认为您需要:
var array = new Array(1, 2, 3);
在javascript中,我认为您需要:
var array = new Array(1, 2, 3);
问题是,在Chrome中,
窗口(全局对象)有一个状态
属性,出于某种原因,Chrome似乎引用了该属性,而不是您的状态
变量。将状态
重命名为任何其他属性,例如,myStatus
,问题是在Chrome中,窗口(全局对象)有一个状态
属性,出于某种原因,Chrome似乎引用了该属性而不是您的状态
变量。将状态
重命名为其他任何属性,例如,myStatus
,将为您提供您期望的结果。var array=[1,2,3]代码>也可以。可能更好,因为数组
向量可能会让人困惑。。。传递一个参数设置数组的初始大小,传递更多参数意味着每个参数都是数组成员。。。傻。顺便说一句-1不是我写的;)<代码>变量数组=[1,2,3]代码>也可以。可能更好,因为数组
向量可能会让人困惑。。。传递一个参数设置数组的初始大小,传递更多参数意味着每个参数都是数组成员。。。傻。顺便说一句-1不是我写的;)我最近也遇到了这个问题。我有var status=$(“#status”);它在IE中运行良好,但在Chrome中损坏。问题在于,Chrome甚至通过保护全局变量名来保护window的属性——因此,如果在Chrome中全局声明,则var位置、var状态、var导航器等都会失败。如果在函数内部声明,它们都可以正常工作-因此解决方法是(function(){/*将代码放在这里*/})();或者使用不同的变量名。烦人的快速一次性脚本!我最近也遇到了这个问题。我有var status=$(“#status”);它在IE中运行良好,但在Chrome中损坏。问题在于,Chrome甚至通过保护全局变量名来保护window的属性——因此,如果在Chrome中全局声明,则var位置、var状态、var导航器等都会失败。如果在函数内部声明,它们都可以正常工作-因此解决方法是(function(){/*将代码放在这里*/})();或者使用不同的变量名。烦人的快速一次性脚本!