我今天注意到,NaN当您输入{}+{}控制台时,Chrome 49不再输出。而是输出字符串[object Object][object Object]。为什么是这样?语言改变了吗?
3 回答

泛舟湖上清波郎朗
TA贡献1818条经验 获得超3个赞
现在,Chrome devtools会自动在隐含的一对括号(请参阅代码)中包装所有以开头{和结尾的内容,以强制将其评估为表达式。这样,现在创建一个空对象。如果您回顾历史记录(),则会看到此内容,前一行将包含在中。}{}↑(…)
为什么?我不知道,但是我可以猜到它减少了对于不了解block-vs-object-literal的新手的困惑,如果您只想评估一个表达式,它也将更加有用。
实际上,这就是原因,如错误499864中所述。纯粹的便利。而且因为节点REPL也具有它(请参见代码)。

繁星点点滴滴
TA贡献1803条经验 获得超3个赞
如果选中此选项后单击向上箭头,则会注意到而不是{} + {}显示({} + {}),结果为"[object Object][object Object]"。
相比之下,在Firefox中,{} + {}仍然会显示NaN,但是如果您这样做({} + {}),也会显示"[object Object][object Object]"。
因此,当Chrome浏览器看到此操作时,它似乎会自动添加周围的括号。
添加回答
举报
0/150
提交
取消