JS Array名为" name"表现得很奇怪

时间:2016-05-08 14:12:24

标签: javascript arrays

我玩了一下并创建了一个包含一些字符串的javascript数组。当我试图访问该阵列时,它表现得非常奇怪。数组是正确创建的,如果被称为其他内容,则按预期工作。



var name = ["foo", "bar"];

alert(name); // shows "foo,bar"




如果变量名为name,为什么数组会转换为字符串?根据标准(链接网站所基于的),它应该是一个有效的变量名称:https://mothereff.in/js-variables#name

1 个答案:

答案 0 :(得分:2)

如果您在浏览器环境中执行javascript,则代码将在窗口上下文中执行。此上下文已经设置了一些全局变量。其中一个是window.name,它是一个字符串。设置变量后,浏览器会自动将新值转换为字符串,这会导致奇怪的行为。

因此即使name是一个有效的变量名,如果你在浏览器中执行你的javascript,也不应该在全局上下文中使用它(它应该在例如node.js中正常工作)。