不能将数组赋值给全局变量name

Can't assign an array to the global variable "name"

本文关键字:全局变量 name 赋值 数组 不能      更新时间:2023-09-26

这是令人难以置信的沮丧,特别是考虑到它的简单性。简单的javascript:

<script type="text/javascript">
var name = new Array("cat","dog");
document.write(name[1]);
</script>

这个脚本打印:"a"(就像"cat"中的"a"…又名名称[0][1]……)。

然而,当我将其更改为document.write(name)时,它打印整个数组(即。"猫、狗")。为什么这个简单的数组不能打印整个字符串(应该是"dog")?!

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

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

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

在函数作用域中使用name当然会很好。

你应该用这个代替:

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