-
转换为数字类型
-
Number(数据)
可以用于任何数据类型, 将其转换为 数字类型
- 字符串转数字
如果转换的字符串是纯数字组成的, 那么直接转换为 数字
如果转换的字符串是 空字符串或者空白字符串, 那么直接转换为 数字0
其他类型的字符串(不是 空---空白---纯数字字符串) 会转换为 NaN
NaN: 表示的是一个 number 的数字, 但是没有办法通过常规的数字表明它, 所以只能使用 NaN 来代替(坏掉的数字)
console.log(typeof(Number('100')), Number('100')) // number 100 会将 '100' 转换为 数字, 然后打印到控制台
console.log(typeof(Number('')), Number('')) // number 0
console.log(typeof(Number(' ')), Number(' ')) // number 0
console.log(typeof(Number('abc')), Number('abc')) // number NaN
- 布尔值转数字
true 转换为 1
false 转换为 0
console.log(typeof(Number(true)), Number(true)) // number 1
console.log(typeof(Number(false)), Number(false)) // number 0
- undefined 转数字
会直接转换为 NaN
console.log(typeof(Number(undefined)), Number(undefined)) // number NaN
- null 转数字
会直接转换为 0
console.log(typeof(Number(null)), Number(null)) // number 0
console.log(typeof(parseFloat('100.123456789')), parseFloat('100.123456789')) // number 100.123456789
2. parseInt(数据) 转换为整数
会将数据转换为 number类型, 并且值是整数(直接忽略掉小数点以后的值, 并不是四舍五入)
在转换的时候, 如果数据是纯数字字符串或者是数字开头的字符串, 那么会转换为数字, 否则就是转换为 NaN
console.log(typeof(Number('100.123456789')), Number('100.123456789')) // number 100.123456789
console.log(typeof(parseInt('100.123456789')), parseInt('100.123456789')) // number 100
console.log(typeof(parseInt('100')), parseInt('100')) // number 100
console.log(typeof(parseInt('100abc')), parseInt('100abc')) // number 100
console.log(typeof(parseInt('999abc')), parseInt('999abc')) // number 999
console.log(typeof(parseInt('abc')), parseInt('abc')) // number NaN
console.log(typeof(parseInt('abc666')), parseInt('abc666')) // number NaN
console.log(typeof(parseInt('')), parseInt('')) // number NaN
console.log(typeof(parseInt(' ')), parseInt(' ')) // number NaN
console.log(typeof(parseInt(true)), parseInt(true)) // number NaN
console.log(typeof(parseInt(false)), parseInt(false)) // number NaN
console.log(typeof(parseInt(undefined)), parseInt(undefined)) // number NaN
console.log(typeof(parseInt(null)), parseInt(null)) // number NaN
3. parseFloat(数据) 转换为小数
转换结果于 parseInt 类似, 但是在转换小数的时候会保留小数点后的数字
console.log(typeof(parseFloat('100')), parseFloat('100')) // number 100
console.log(typeof(parseFloat('100abc')), parseFloat('100abc')) // number 100
console.log(typeof(parseFloat('999abc')), parseFloat('999abc')) // number 999
console.log(typeof(parseFloat('abc')), parseFloat('abc')) // number NaN
console.log(typeof(parseFloat('abc666')), parseFloat('abc666')) // number NaN
console.log(typeof(parseFloat('')), parseFloat('')) // number NaN
console.log(typeof(parseFloat(' ')), parseFloat(' ')) // number NaN
console.log(typeof(parseFloat(true)), parseFloat(true)) // number NaN
console.log(typeof(parseFloat(false)), parseFloat(false)) // number NaN
console.log(typeof(parseFloat(undefined)), parseFloat(undefined)) // number NaN
console.log(typeof(parseFloat(null)), parseFloat(null)) // number NaN
4. 扩展: 在实际开发中 我个人常用 数据 - 0 (暂时先不考虑原理)
console.log(typeof('100'), '100') // string 100
console.log(typeof('100' - 0), '100' - 0) // number 100
console.log(typeof('100.99' - 0), '100.99' - 0) // number 100