Javascript 对象定义语法错误

Javascript 对象定义语法错误,javascript,Javascript,为什么第二行代码产生错误而第三行代码不产生错误 { foo: 'bar' } // => 'bar' { "foo": 'bar' } // => SyntaxError: Invalid label ({ "foo": 'bar' }) // => { foo: 'bar' }. 语言规范的相关部分是 表达陈述:[展望未来]∉ {{,函数}]表达式; 先行部分意味着,如果某个语句不是以{或函数开头,则仅当该语句出现在预期语句的位置时,才会将其视为表达式 是一个语句块,

为什么第二行代码产生错误而第三行代码不产生错误

{ foo: 'bar' } // => 'bar'

{ "foo": 'bar' } // => SyntaxError: Invalid label

({ "foo": 'bar' }) // => { foo: 'bar' }.

语言规范的相关部分是

表达陈述:[展望未来]∉ {
{
函数
}]表达式;

先行部分意味着,如果某个语句不是以
{
函数
开头,则仅当该语句出现在预期语句的位置时,才会将其视为表达式


是一个语句块,包含表达式语句
'bar'
,带有标签
foo
。标签允许您从命名循环中
中断
继续
,但可以附加到任何语句,而不仅仅是循环

{ "foo": 'bar' }
解析器开始对此进行解析,找到表达式
“foo”
,然后查找二进制运算符,但
不是有效的二进制运算符,因此会出现语法异常而失败

({ "foo": 'bar' })

在这里,括号输入表达式上下文,因此
{
被视为启动对象构造函数,而不是块的开始。

你的问题毫无意义。试着用另一种方式来表达它。是的。这三个都是有效的JavaScript语法。你真正想问什么?@mattsnider:在JS控制台中运行代码。@Blender谢谢你的编辑。看看这个问题。。呜呜:)谢谢你行政长官答:)
({ "foo": 'bar' })