【问题标题】:JS Array called "name" behaves strangely [duplicate]名为“名称”的 JS 数组行为异常[重复]
【发布时间】:2016-05-08 22:12:23
【问题描述】:

我玩了一下,创建了一个包含一些字符串的 javascript 数组。当我尝试访问该数组时,它的行为非常奇怪。该数组已正确创建,并且如果它被称为其他名称,则可以按预期工作。

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

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

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

【问题讨论】:

  • 所以您在不到一分钟的时间内回答了自己的问题?不错
  • 我在提出问题之前找到了答案,但找不到之前提出相同问题的问题,因此决定创建这个问题并自己回答。据我所知,这是在 stackoverflow 上的常见做法:stackoverflow.com/help/self-answer
  • 这个重复的太多了。
  • 好像我搜索的不够多。抱歉重复了。
  • Here's another duplicate 处理这个问题中的数组。 @FlorianRichter:没什么大不了的。

标签: javascript arrays


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2019-05-17
    • 2013-04-30
    • 1970-01-01
    • 2018-03-19
    • 1970-01-01
    • 2021-06-26
    • 2018-08-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多