【发布时间】:2011-02-09 11:04:42
【问题描述】:
当我输入这段看似无辜的 sn-p 代码时:
values.name
gedit 将 name 突出显示为关键字。但是,an answer to a question about reserved keywords 链接的页面并未列出 name。我还在 SpiderMonkey 中做了一些简单的测试,但 name 似乎表现得像一个普通的标识符。
Google 搜索也没有告诉我太多信息。但是,我确实找到了 a page listing name in "Other JavaScript Keywords". 我的猜测是 name 是某个 DOM 元素的函数或成员,并且不会侵入命名空间。
name 真的是 JavaScript 中的关键字吗?如果是这样,它有什么作用?
【问题讨论】:
-
name被(曾经)用作a元素的属性,因此它可能出现在 DOM 代码中。也许这就是您的编辑突出显示它的原因。 -
实际上 gedit 将
name突出显示为一个属性。但在经典配色方案中,属性和关键字都使用相同的样式定义。因为 gedit 的解析能力非常有限,尽管只有一小部分重要的属性名称会用这种样式突出显示,例如像global、source、lastIndex这样的正则表达式属性和像prototype、@987654331 这样的函数属性@ 和name. -
在 chrome 中,名称的行为很奇怪,就像来自本地主机的全局对象。即在函数内 var name ='...' 正在修改原始 window.name ,因此 'name;在 fn 范围之外可用。但是,当我在控制台和 Plunkr 中单独运行它时,它显示未定义/或原始窗口对象。在 IE 中它的行为正常(即在 localhost 中未定义/为空)
标签: javascript keyword