卷曲括号语法错误之后的JavaScript点?:{num:1} .num



在Chrome的DevTools中键入此信息:{num:1}.num给出语法错误:

SyntaxError: Unexpected token .

...但是输入此返回1:

(function() {
    return {num:1}.num;
})();

为什么我在第一个示例中获得语法错误,而不是第二个?

,因为在这种情况下括号是模棱两可的,并且被解释为块语句,而不是对象字面。像

{
    num: 1
}
.num

其中num:被解释为标签。

您可以使用分组操作员迫使构造被解释为表达式:

({num: 1}).num

在第二种情况下,括号只能是一个字面的对象,因为返回语句只能包含一个表达式(而不是语句)

最新更新