6

注意:这个问题与 Doug Crockford 所写的“JavaScript: The Good Parts”一书有关。 在阅读有关对象的一章时,我遇到了如下声明:

如果名称是合法的 JavaScript 名称而不是保留字,则对象文字中属性名称的引号是可选的。所以引号是必需的"first-name",但是是可选的"first_name"

以下是书中提供的对象字面量示例:

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

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

4

1 回答 1

13

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

原因之一是 javascript 更喜欢尽可能忽略空格。因此2 - 3与 相同2-3

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

于 2013-09-17T16:05:04.613 回答