三种方法
- Number()
- parseInt()
- parseFloat()
Number(),不太好用
字符串时
数字字符串 -> 十进制数字, 忽略首位的 0
带有非数字的字符串 -> NaN
空的字符串 -> 0
console.log(Number('123'));//返回数字123
console.log(Number('0123'));//返回数字123
console.log(Number('01.23'));//返回数字1.23
console.log(Number('hello'));//返回 NaN
console.log(Number(''));//返回数字 0
boolean
true -> 1, false -> 0
console.log(Number(true));//返回数字 1
console.log(Number(false));//返回数字 0
null 和 undefined
null -> 0, undefined -> NaN
console.log(Number(null)); //返回 数字 0
console.log(Number(undefined)); //返回 NaN
对象
大部分情况都是 NaN;
空array 或者 只有一个数字的array时,会返回数字
console.log(Number([])); // 返回数字 0
console.log(Number([20])); // 返回数字 20
console.log(Number([20,30])); // 返回 NaN
parseInt(),常用
- 参数的开头必须是数字或者负号,不同进制的数字也可以1
- 满足1的前提下,只返回第一次出现的,连续的,字符串形式的数字
- 只返回整数,如果想要返回浮点数,请用parseFloat()
- 空的字符串 或者 都是文字的字符串,返回 NaN
console.log(parseInt('123b22'));//返回数字 123
console.log(parseInt('-123boys22'));//返回数字 -123
console.log(parseInt('-1.23'));//返回数字 -1
console.log(parseInt('boys'));//返回数字 NaN
console.log(parseInt(''));//返回数字 NaN
parseFloat()
- 只能解析十进制的数,会忽略前面的所有0
- 满足1的前提下,只返回第一次出现的小数点,连续的,字符串形式的数字
- 如果字符串包含一个 整数,就返回整数
不同进制的数字这里不做解释,请谷歌 ↩︎