javascript - JS对象和数字加法
问题描述
{} + 5 === 5
5 + {} === '5[object Object]'
第一个表达式是如何{} + 5 === 5
计算的?
第二个表达式5 + {} === '5[object Object]'
是预期结果。
===== 编辑 ====
({}) + 5 === '[object Object]5'
这可能是说:{}
正如问题评论所说,在第一个表达式中被忽略了。
解决方案
{}
行首的 被认为是一个代码块而不是一个对象字面量。因此{} + 5
不被认为是两个值之间的二元加法,计算结果为+5
, 一元 + 运算符应用于 5。
当{}
放在圆括号内时,它变成对象字面量,整个表达式计算为'[object Object]5'
推荐阅读
- python - PyCharm | 函数 myFunction 位于 0x000001EBF0C97B70
- c# - 创建后更改 GameWindow 的 GraphicsMode
- reactjs - 无法在反应中更新状态
- reactjs - 使用 React 将表单发布到 API
- prolog - 如何从材料构建中构建组件
- amazon-web-services - 连接到 VPN 时无法访问 AWS EC2 实例
- gnuplot - 在 gnuplot 中拟合时间数据的子范围
- python - 使用 Redis 的 Python 对象存储
- c# - 我需要帮助从我的代码中检索用户输入
- javascript - 包装组件后如何检索节点?