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

the*_*ron 1 javascript arrays

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

<script type="text/javascript">

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

document.write(name[1]);

</script>
Run Code Online (Sandbox Code Playgroud)

这个脚本打印:"a"(如"cat"中的"a"...又名[0] [1] ......).

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

rob*_*rob 6

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

window.name = [1, 2, 3];
console.log(typeof window.name, window.name);
Run Code Online (Sandbox Code Playgroud)

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

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