【问题标题】:What's special about the "name" variable in JavaScript? [duplicate]JavaScript 中的“name”变量有什么特别之处? [复制]
【发布时间】:2013-10-01 06:21:37
【问题描述】:

在 Chrome 开发者工具窗口中,我输入:

> name = ["a", "b", "c"]
["a", "b", "c"]

但是,name 变成了字符串:

> typeof name
"string"
> name
"a,b,c"
> name[1]
","

这显然不适用于其他变量名!

> foo = ["a", "b", "c"]
["a", "b", "c"]
> typeof foo
"object"
> foo[1]
"b"

并且name 被定义为页面加载时的空字符串(据我所知,除了字符串之外,它不能变成任何东西)。

那么,name 怎么了?

【问题讨论】:

  • 看起来 name 在分配给数组之前已经存在。默认值为""。我怀疑它是语言本身的一部分的内置/原型。尽管有细节。
  • 我注意到的另一件事是,即使您重新加载页面,该变量也会保持设置,这不是正常行为。
  • 好吧,你可以有一个名为“name”的函数或一个对象,它会从调用typeof name返回functionobject

标签: javascript google-chrome


【解决方案1】:

当您键入 name 时,您将隐式引用 window.name,根据 MDN:

获取/设置窗口的名称。

https://developer.mozilla.org/en-US/docs/Web/API/window.name

【讨论】:

  • 因此将其转换为string
猜你喜欢
  • 2011-02-25
  • 1970-01-01
  • 1970-01-01
  • 2011-10-20
  • 1970-01-01
  • 2013-08-04
  • 1970-01-01
  • 2011-07-13
  • 2013-03-14
相关资源
最近更新 更多