1、Number()
特点:把要转换的内容看成一个整体。如果可以转换成功,那么是转换后的数值;如果失败,那么是NaN。
const a = '100'
console.log(Number(a)) // 100
const b = '100abc'
console.log(Number(b)) // NaN
const c = true
console.log(Number(c)) // 1
const d = '100.1'
console.log(Number(d)) // 100.1
2、parseInt()
特点:把要转换的内容一位一位的看。如果第一位就转换失败,那么是NaN;如果非第一位转换失败,那么截止到可以转换成功的数值。且如果是浮点类型的数据,那么会转换为整型,因为不识别小数点。
const a = '100'
console.log(parseInt(a)) // 100
const b = '100abc'
console.log(parseInt(b)) // 100
const c = true
console.log(parseInt(c)) // NaN
const d = '100.1'
console.log(parseInt(d)) // 100
3、parseFloat()
特点:同parseInt(),但是可以识别小数点。
const a = '100'
console.log(parseFloat(a)) // 100
const b = '100abc'
console.log(parseFloat(b)) // 100
const c = true
console.log(parseFloat(c)) // NaN
const d = '100.1'
console.log(parseFloat(d)) // 100.1
4、正负值
特点:同Number()
const a = '100'
console.log(+a) // 100
console.log(-a) // -100
const b = '100abc'
console.log(+b) // NaN
const c = true
console.log(+c) // 1
const d = '100.1'
console.log(+d) // 100.1
5、非加法 的数学运算
特点:同Number()
const a = '100'
console.log(a - 0) // 100
console.log(a * 1) // 100
console.log(a / 1) // 100
const b = '100abc'
console.log(b - 0) // NaN
const c = true
console.log(c * 1) // 1
const d = '100.1'
console.log(d / 1) // 100.1
总结:可以分为两类;第一类:Number()、正负值、非加法的数学运算,这三个都是把要转换的内容看作一个整体;第二类:parseInt()、parseFloat(),这两个都是一位一位的看,直到转换失败的那一位,返回转换成功的数值,如果不幸第一位就转换失败,那么直接是NaN。