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
constage=0
// bad
consthasAge=newBoolean(age)
// good
consthasAge=Boolean(age)
// good
consthasAge=!!age

猜你喜欢

转载自blog.csdn.net/qq_15576765/article/details/81004364