Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
名为status的Javascript数组在google chrome中不工作_Javascript_Google Chrome - Fatal编程技术网

名为status的Javascript数组在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

我试图在我的javascript中创建一个名为status的数组,但它在Google Chrome中不起作用

<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(){/*将代码放在这里*/})();或者使用不同的变量名。烦人的快速一次性脚本!