Web*_*ner 3 javascript syntax syntax-error
在Chrome的devtools中输入以下内容:{num:1}.num给出语法错误:
SyntaxError: Unexpected token .
Run Code Online (Sandbox Code Playgroud)
...但键入此返回1:
(function() {
return {num:1}.num;
})();
Run Code Online (Sandbox Code Playgroud)
为什么我在第一个例子中得到语法错误而不是第二个例子?
因为在这种情况下大括号是模糊的,并且被解释为块语句,而不是对象文字.就像是
{
num: 1
}
.num
Run Code Online (Sandbox Code Playgroud)
哪里num:被解释为标签.
您可以使用分组运算符强制将构造解释为表达式:
({num: 1}).num
Run Code Online (Sandbox Code Playgroud)
在第二种情况下,大括号只能是一个对象文字,因为return语句只能包含一个表达式(而不是一个语句)