1,使用Number()函数
字符串 --------- 数字
(1)如果是纯数字的字符串,则直接将其转换为数字
var a = '123'
a = Number(a)
console.log(typeof a) // number
console.log(a) // 123
(2) 如果字符串中有非数字的内容,则直接转换为NaN
var a = '123abc'
a = Number(a)
console.log(typeof a) // number
console.log(a) // NaN
(3) 如果字符串为空或者是一个空格的字符串,则转换为0
var a = ''
var b = ' '
a = Number(a)
b = Number(b)
console.log(typeof a,typeof b) // number number
console.log(a,b) // 0 0
布尔值 --------- 数字
true 转为 1
false 转为 0
var a = true
var b = false
a = Number(a)
b = Number(b)
console.log(typeof a,typeof b) // number number
console.log(a,b) // 1 0
null --------- 数字 是 0
undefined --------- 数字 是 NaN
var a = null
var b = undefined
a = Number(a)
b = Number(b)
console.log(typeof a,typeof b) // number number
console.log(a,b) // 0 NaN
2,专门用来对付字符串
使用parseInt() 将字符串转换为一个整数,从左到右查找第一个整数,找不到则返回NaN
var a = '123'
a = parseInt(a)
console.log(typeof a,a) // number 123
var b = '123abc'
b = parseInt(b)
console.log(typeof b,b) // number 123
var c = '123a456'
c = parseInt(c)
console.log(typeof c,c) // number 123
var d = '123.456'
d = parseInt(d)
console.log(typeof d,d) // number 123
var e = 'a123'
e = parseInt(e)
console.log(typeof e,e) // number NaN
使用parseFloat() 将字符串转换为一个浮点数,从左到右查找第一个整数或小数,找不到则返回NaN
var a = '123'
a = parseFloat(a)
console.log(typeof a,a) // number 123
var b = '123abc'
b = parseFloat(b)
console.log(typeof b,b) // number 123
var c = '123.456'
c = parseFloat(c)
console.log(typeof c,c) // number 123.456
var d = '123.456abc'
d = parseFloat(d)
console.log(typeof d,d) // number 123.456
var e = '123.456.789abc'
e = parseFloat(e)
console.log(typeof e,e) // number 123.456
var f = 'abc123.456'
f = parseFloat(f)
console.log(typeof f,f) // number NaN