- javascript中的數值只有一種型別: number,整數、小數、指數,型別皆為number
- number永遠儲存成雙精度浮點數(double precision floating point numbers),依據IEEE 754
精確度
- 整數最多到15位數
- 小數計算並非完全精確 e.g. 0.1+0.2
- 通常先 *10 再 /10解決此問題
數值和字串相加
- x = 10; y = 20; 相加結果: 30
- x = "10"; y = "20"; 相加結果: 1020
- x = 10; y = "20"; 相加結果: 1020
- x = "10"; y = 20; 相加結果: 1020
任一運算中的變數為字串,結果就變成字串串聯
- x = "Word"; y = 10; z = 20; 相加結果: Word1020
- x = 10; y = 20; z = "30"; 相加結果: 3030
javascript的編譯器由左至右運算,只要一碰到字串就會變成字串串聯
- x = "10"; y="2" x / y 結果: 5
- x = "10"; y="2" x * y 結果: 20
- x = "10"; y="2" x - y 結果: 8
除了 + 號之外的運算符號,javascript都會嘗試轉換字串做運算
NaN(Not a number的縮寫)
- NaN是javascript的保留字,用來表示數值不合法,用非數值的變數運算就會產生此結果
- e.g. "Text" / 5
- isNaN(),可用來檢查變數是否為合法的數值
- isNaN("Text"): true
- 特例
- NaN + 10 => NaN
- NaN + "10" => NaN10
- typeof NaN => "number"
無窮大/負無窮大
若計算時超出最大數值,則會得到 Infinity 的結果
- 7 / 0
- -2 / 0
- typeof Infinity => "number"
16進制
- 若以 0x 開頭,則認定為16進制
- 0xFF => 255
- 請務必避免 07 開頭,有些javascript的版本會判定為8進制
- 預設為10進制
- 若想用其他進制顯示,可用ToString(n進制)
- 32.ToString(2) => 100000
沒有留言:
張貼留言