首页 > 解决方案 > JS对象和数字加法

问题描述

{} + 5 === 5
5 + {} === '5[object Object]'

第一个表达式是如何{} + 5 === 5计算的?

第二个表达式5 + {} === '5[object Object]'是预期结果。

===== 编辑 ====

({}) + 5 === '[object Object]5'

这可能是说:{}正如问题评论所说,在第一个表达式中被忽略了。

标签: javascriptimplicit-conversion

解决方案


{}行首的 被认为是一个代码块而不是一个对象字面量。因此{} + 5不被认为是两个值之间的二元加法,计算结果为+5, 一元 + 运算符应用于 5。

{}放在圆括号内时,它变成对象字面量,整个表达式计算为'[object Object]5'

可以在此处找到有关此问题的更多详细信息


推荐阅读