“名字”如何成为JavaScript中的保留字?

时间:2013-09-17 16:04:01

标签: javascript object-literal reserved-words

注意:这个问题与Doug Crockford撰写的“JavaScript:The Good Parts”一书有关。 当我阅读有关Objects的章节时,我发现了如下声明:

  

如果名称是合法的JavaScript名称而不是保留字,则对象文字中属性名称周围的引号是可选的。因此, "first-name" 需要引用,但在 "first_name" 附近是可选的。

以下是本书中提供的对象文字的示例:

var stooge = {
    "first-name": "Jerome",
    "last-name": "Howard"
};

现在,我可能误解了这里的文字,但对我来说,看起来Crockford先生说 first-name (带连字符)是一个保留字,而 {{ 1}} (使用下划线)不是。如果是这种情况,我不明白前者如何成为保留词。我在书中没有找到其他解释为什么会这样。有人可以解释一下吗?

1 个答案:

答案 0 :(得分:13)

这不是保留字。如果没有引号,javascript会将-字符解释为减法运算符,尝试执行操作并失败。

这样做的一个原因是javascript无论何时都喜欢忽略空格。因此2 - 32-3相同。

将整个事物放在引号中会导致js解释为另一个字符,而不是运算符。