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

求助如下,关于console.log(1 + "2" + "2") 122 我想知道为什么是这样?

求助如下,关于console.log(1 + "2" + "2") 122 我想知道为什么是这样?

PHP C
慕姐8265434 2022-01-05 11:07:05
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而不会变成字符串连接

查看完整回答
反对 回复 2022-01-09
?
MYYA

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

1++“2”等同于: 1+(+'2'):+'2' 的 + 是一元操作符,对 '2' 进行Number()操作,转为数字的2,所以等于3;+2位字符链接,所以是32

查看完整回答
反对 回复 2022-01-09
  • 2 回答
  • 0 关注
  • 480 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号