變數運算時該注意的幾件事

基本但卻重要。

要注意資料型別

一個很常見的例子是「字串 + 數字」:

1
2
var a = 100
console.log(a + '10') // '10010'

當「字串 + 任何東西時」,都會被強制轉成字串做「字串拼接」。

為了避免這種情況,當你想做的是數學運算時,請務必先轉換型態:

  1. Number(a)
  2. parseInt(a, 10),第二個參數是代表 a 這個字串代表的是幾進位的數字

所以剛剛的把例子修正一下:

1
2
3
var a = 100
console.log(a + Number('10')) // 110
console.log(a + parseInt('10', 10)) // 110

要注意浮點數誤差

這個還蠻常忽略掉的,但浮點數很多時候跟你想的不一樣:

1
2
3
var a = 0.1 + 0.2
console.log(a === 0.3) //false
console.log(a) // 0.30000000000000004

不要懷疑人生,真的不一樣。

但簡單來說,浮點數會有「輸入值不精確」跟「溢位」的問題,非必要時盡量不要用浮點數。

補充:「溢位」指的就是超出記憶體可以儲存的位元數。

if 跟 if else 可能會犯的錯誤 JavaScritp 中的資料型別
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×