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

为什么js运算符"+"?

为什么js运算符"+"?

当年话下 2018-11-20 17:18:11
为什么 +'11'可以转化成数字11,而 1 + '11' 结果却是 '111' 字符串?
查看完整描述

1 回答

?
MMTTMM

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

由于在 ES6 之前就是这样的答案,所以本答案从 ES5 中获取。

+'11'

答案来源:ECMAScript5.1 11.4.6

一元 + 操作将其操作值转换为数字,别问为什么,规范上定义的。

1 + '11'

答案来源:ECMAScript5.1 11.6.1

加法操作的步骤:

  1. 将左右两值先转换为元类型(如字符串、数字);比如布尔会转为数字,对象通常情况转为字符串等;

  2. 加起来

    1. 若左值或右值转换后的值任一为字符串,则将两边的值都转为字符串作拼接操作;

    2. 否则,将左值和右值都转为数字,然后对数字作加法操作;(如布尔型转换元类型就不是字符串,而仍然是布尔,所以在这里判断走该分支,则将布尔转为数字 1 或 0)

  3. 返回结果。


查看完整回答
反对 回复 2018-12-19
  • 1 回答
  • 0 关注
  • 546 浏览
慕课专栏
更多

添加回答

举报

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