parseInt()
和 parseFloat()
也是把其余数据类型转换为 number 类型的。然而它们的解决原理和 Number()
齐全不一样。
它们是把字符串类型转换为数字类型,如果解决的值不是字符串,须要先转换为字符串,而后再去转换为 number 类型。
它们的转换规则是:从字符串最右边开始查找,把找到的有效数字字符转换为数字,始终遇到一个非有效数字字符为止,则完结查找。
示例代码如下:
console.log(Number('12px')) // => NaN
console.log(parseInt('12px')) // => 12
console.log(parseInt('12px345')) // => 12
console.log(parseInt('width: 12px')) // => NaN
console.log(parseInt('12.5px')) // => 12
console.log(parseFloat('12.5px')) // => 12.5 parseFloat 只比 parseInt 多辨认一个小数点
console.log(Number(true)) // => 1
console.log(parseInt(true)) // => 先把布尔 true 转换为字符串 'true' parseInt('true') => NaN
console.log(parseInt(NaN)) // => NaN
console.log(Number(null)) // => 0
console.log(parseInt(null)) // => parseInt('null') => NaN