如果您在控制台中输入
> new Object()
空js对象将出现在控制台中并且是预期的,但如果键入
> {}
你得到undefined
很奇怪。不是吗?
答案 0 :(得分:6)
使用new
调用函数始终会产生值。现在,你的第二行,
{}
是一个空代码块,而不是对象文字。
尝试:
({})
或:
0,{}
控制台将您键入的行解析为语句,而不是表达式。因此,语句开头的开放大括号是块分隔符,而不是对象文字的开头。通过包含其他标记来强制解析器解析表达式,您可以开始一个对象文字。