猿问

为什么{} + {}在Chrome控制台中不再为NaN?

我今天注意到,NaN当您输入{}+{}控制台时,Chrome 49不再输出。而是输出字符串[object Object][object Object]。


为什么是这样?语言改变了吗?


jeck猫
浏览 366回答 3
3回答

鸿蒙传说

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

白衣非少年

如果选中此选项后单击向上箭头,则会注意到而不是{} + {}显示({} + {}),结果为"[object Object][object Object]"。相比之下,在Firefox中,{} + {}仍然会显示NaN,但是如果您这样做({} + {}),也会显示"[object Object][object Object]"。因此,当Chrome浏览器看到此操作时,它似乎会自动添加周围的括号。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答