1. 程式人生 > >js型別轉換注意點

js型別轉換注意點

1、轉換成字串時,使用 String 構造器
constreviewScore=9
// bad
consttotalScore= reviewScore +''// 實際呼叫: reviewScore.valueOf()constobj= {
  valueOf: () =>1
}
obj +''// '1' 而不是 '[object Object]'
// bad
consttotalScore= reviewScore.toString() // toString 方法可能被改寫
// good
consttotalScore=String(reviewScore)
2、轉換成數字時,使用 Number 構造器
constinputValue='4'
// bad
constval=+inputValue
// bad
constval=newNumber(inputValue)

// bad/** * JavaScript 位運算完全套用 Java,有三個問題: * 1、位操作針對的是整數,小數部分會被捨棄 * 2、整數不能超過32位 * 3、JavaScript 的數字都是以雙精度浮點數儲存的,實際執行還需要先轉換為整數 */

constval= inputValue >>0
// good
constval=Number
(inputValue)
3、解析成整數時,使用 ParseInt

使用 parseInt 時,如果不指定進位制,轉換的變數以 0 開頭(比如一些月份和天),ECMAScript 3 會當作 8 進位制。

constinputValue='200px'
// bad
constval=parseInt(inputValue)
// good
constval=parseInt(inputValue, 10)
4、轉換成 boolean 時,使用 Boolean 構造器或者 !!variable
const
age=0
// bad
consthasAge=newBoolean(age)
// good
consthasAge=Boolean(age)
// good
consthasAge=!!age