我今天注意到NaN当你输入{}+{}控制台时,Chrome 49不再输出。而是输出字符串[object Object][object Object]。为什么是这样?语言有变化吗?
3 回答
绝地无双
TA贡献1946条经验 获得超4个赞
Chrome devtools现在会自动将一系列以隐含的括号开头{
和结束的内容包装起来}
(请参阅代码),以强制将其评估为表达式。这样,{}
现在创建一个空对象。如果你回顾历史(↑),你可以看到这一点,前一行将包含在(…)
。
为什么?我不知道,但我可以猜测它可以减少那些不知道block-vs-object-literal事情的新手的混乱,如果你只是想评估一个表达式,它也会更有帮助。
事实上,正如bug 499864中所讨论的那样,这就是推理。纯粹的便利。因为节点REPL也有它(见代码)。
翻翻过去那场雪
TA贡献2065条经验 获得超14个赞
如果在检查完之后点击向上箭头,您会注意到{} + {}
它显示而不是显示({} + {})
,这导致了"[object Object][object Object]"
。
相比之下,在Firefox中{} + {}
仍然显示NaN
,但如果你这样做({} + {})
也会显示"[object Object][object Object]"
。
因此,看起来Chrome在看到此操作时会自动添加周围的括号。
添加回答
举报
0/150
提交
取消