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

如果变量名为name
,为什么数组会转换为字符串?根据标准(链接网站所基于的),它应该是一个有效的变量名称:https://mothereff.in/js-variables#name
答案 0 :(得分:2)
如果您在浏览器环境中执行javascript,则代码将在窗口上下文中执行。此上下文已经设置了一些全局变量。其中一个是window.name,它是一个字符串。设置变量后,浏览器会自动将新值转换为字符串,这会导致奇怪的行为。
因此即使name
是一个有效的变量名,如果你在浏览器中执行你的javascript,也不应该在全局上下文中使用它(它应该在例如node.js中正常工作)。