在我的Javascript控制台(在Chrome中)我正在尝试这个:
{ 'a' : 1 }
Run Code Online (Sandbox Code Playgroud)
并得到 SyntaxError: Unexpected token :
但这有效:
['a', 1]
Run Code Online (Sandbox Code Playgroud)
是什么赋予了???
这是因为花括号有两个用途 - 要么引入一个块,要么作为对象文字的开头(后者是一个表达式).
控制台无法分辨哪个,因此它假设一个语句块,并且稍后才发现该块的内容不能被解析为语句.
对于带方括号的数组文字,不存在歧义.
可以通过更改上下文来解决歧义,以便{...} 必须将其解释为表达式而不是语句块,例如,将其设置为运算符的RHS,将其包装在括号中,或将其作为函数参数传递等.
| 归档时间: |
|
| 查看次数: |
210 次 |
| 最近记录: |