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 關注
- 414 瀏覽
添加回答
舉報
0/150
提交
取消