Shn*_*ick 14 javascript syntax
为什么{}.key = 0在chrome控制台中书写时出现错误:
> {}.key = 0
> Uncaught SyntaxError: Unexpected token .
Run Code Online (Sandbox Code Playgroud)
但是,当我将上述表达式封装在括号(( ))中时,我没有得到任何错误:
> ({}.key = 0)
> 0
Run Code Online (Sandbox Code Playgroud)
这到底是怎么回事?我会以为在第一种情况下遇到的相同错误仍然适用于第二种情况?
控制台输出的图像:
mel*_*ene 15
{ }在JavaScript语法中超载。它们用于(语句的)块和对象文字。规则是:如果a {出现在语句的开头,则将其解析为一个块;否则,它是一个对象文字。
在{}.key该{出现在声明的开头。它解析为
{
// this is an empty block
}
.key // syntax error here
Run Code Online (Sandbox Code Playgroud)
在之前添加任何标记{(例如()可使它解析为对象文字。例如,42, {}.key = 0也可以。
| 归档时间: |
|
| 查看次数: |
303 次 |
| 最近记录: |