console.log(1 + "2" + "2")122console.log(1 + +"2" + "2")32console.log(1 + -"2" + "2")-12console.log(+"1" + "1" + "2")112console.log("A" - "B" + "2")NaN2console.log("A" - "B" + 2)NaN
2 回答
临摹微笑
TA贡献1982条经验 获得超2个赞
javascript里如果一个对象和String进行"+"运算, 优先当作字符串的连接操作. 如果另外一个对象不是String那么转换为String再连接
于是1+"2"时会把1转换为"1", 最后得到"12"
而+"2"和-"2"只能当作正负号, 于是转换为Number
"A"-"B"减法运算只能对Number运算所以会先把字符串转换为Number, 因为"A"和"B"不是能转换为数字的字符串, 于是得到NaN
如果你想用简单的写法把一个String转换为Number, 最好的方式是"1"-0, 用减法运算一定会转换为Number而不会变成字符串连接
MYYA
TA贡献1868条经验 获得超4个赞
1++“2”等同于: 1+(+'2'):+'2' 的 + 是一元操作符,对 '2' 进行Number()操作,转为数字的2,所以等于3;+2位字符链接,所以是32
- 2 回答
- 0 关注
- 480 浏览
添加回答
举报
0/150
提交
取消
