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

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

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

一只甜甜圈 2019-04-18 14:15:40
我今天注意到NaN当你输入{}+{}控制台时,Chrome 49不再输出。而是输出字符串[object Object][object Object]。为什么是这样?语言有变化吗?
查看完整描述

3 回答

?
绝地无双

TA贡献1946条经验 获得超4个赞

Chrome devtools现在会自动将一系列以隐含的括号开头{和结束的内容包装起来}请参阅代码),以强制将其评估为表达式。这样,{}现在创建一个空对象。如果你回顾历史(),你可以看到这一点,前一行将包含在(…)

为什么?我不知道,但我可以猜测它可以减少那些不知道block-vs-object-literal事情的新手的混乱,如果你只是想评估一个表达式,它也会更有帮助。

事实上,正如bug 499864中所讨论的那样,这就是推理。纯粹的便利。因为节点REPL也有它见代码)。


查看完整回答
反对 回复 2019-05-08
?
翻翻过去那场雪

TA贡献2065条经验 获得超14个赞

如果在检查完之后点击向上箭头,您会注意到{} + {}它显示而不是显示({} + {}),这导致了"[object Object][object Object]"

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

因此,看起来Chrome在看到此操作时会自动添加周围的括号。


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

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信