JS数组称为“;name”;行为怪异

JS Array called "name" behaves strangely

本文关键字:name 数组 JS      更新时间:2023-09-26

我玩了一会儿,创建了一个包含一些字符串的javascript数组。当我试图访问数组时,它的行为非常奇怪。如果调用其他方法,数组将正确创建并按预期工作。

var name = ["foo", "bar"];
alert(name); // shows "foo,bar"

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

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

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