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' })