为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

哆啦的时光机 2019-12-12 14:10:06
我今天注意到,NaN当您输入{}+{}控制台时,Chrome 49不再输出。而是输出字符串[object Object][object Object]。为什么是这样?语言改变了吗?
查看完整描述

3 回答

?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

现在,Chrome devtools会自动在隐含的一对括号(请参阅代码)中包装所有以开头{和结尾的内容,以强制将其评估为表达式。这样,现在创建一个空对象。如果您回顾历史记录(),则会看到此内容,前一行将包含在中。}{}↑(…)


为什么?我不知道,但是我可以猜到它减少了对于不了解block-vs-object-literal的新手的困惑,如果您只想评估一个表达式,它也将更加有用。


实际上,这就是原因,如错误499864中所述。纯粹的便利。而且因为节点REPL也具有它(请参见代码)。



查看完整回答
反对 回复 2019-12-13
?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

如果选中此选项后单击向上箭头,则会注意到而不是{} + {}显示({} + {}),结果为"[object Object][object Object]"。


相比之下,在Firefox中,{} + {}仍然会显示NaN,但是如果您这样做({} + {}),也会显示"[object Object][object Object]"。


因此,当Chrome浏览器看到此操作时,它似乎会自动添加周围的括号。



查看完整回答
反对 回复 2019-12-13
  • 3 回答
  • 0 关注
  • 407 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号