无法将数组分配给全局变量“name”

时间:2011-10-23 07:54:50

标签: javascript arrays

这令人非常沮丧,特别是考虑到它的简单性。简单的javascript:

<script type="text/javascript">

var name = new Array("cat","dog");

document.write(name[1]);

</script>

此脚本打印:“a”(如“cat”中的“a”... aka name [0] [1] ...)。

然而,当我将其更改为document.write(name)时,它会打印整个数组(即“cat,dog”)。为什么对于上帝的爱是这个简单的数组无法打印整个字符串(应该是“狗”)?!

2 个答案:

答案 0 :(得分:6)

全局变量name引用现有的window.name属性,该属性用于设置浏览器窗口的名称。它将分配给它的任何值转换为字符串:

window.name = [1, 2, 3];
console.log(typeof window.name, window.name);

如果您将变量名称更改为例如names它将按预期执行。

在函数范围范围内使用name当然可以正常工作。

答案 1 :(得分:-2)

你应该改用:

var name = ["cat", "dog"];
document.write(name[1]);