总结自《JavaScript高级程序设计(第四版)》
Number()
console.log(Number(true)) //1
console.log(Number(123)) //123
console.log(Number(0123)) //83 将八进制转换为十进制
console.log(Number("0123")) //123 将字符串中的数字提取出来并去掉前面的0
console.log(Number("-0123")) //-123 将字符串中的数字带符号提取出来并去掉前面的0
console.log(Number("-0.123")) //-0.123
console.log(Number("-0123.1")) //-123.1
console.log(Number("123.0")) //123
console.log(Number("")); //0 空字符串返回0
console.log(Number("123abc")); //NaN
console.log(Number(" 123")); //123
parseInt()
字符串最前面的空格会被忽略,从第一个非空格字符开始转换。如果第一个字符不是数值字符、加号或减号,parseInt()立即返回NaN。如果第一个字符是数值字符、加号或减号,则继续依次检测每个字符,直到字符串末尾,或碰到非数值字符。
console.log(parseInt("")); //NaN
console.log(parseInt("123abc")); //123
console.log(parseInt("12.3")) //12
传‘16’作为第二个参数来解析16进制数值,建议始终传参,避免解析出错
console.log(parseInt("A", 16)); //10 可以省略0x
console.log(parseInt("10010", 2)); //18 怪不得联通用这个作电话号呢
parseFloat()
只解析十进制数值
第一次出现的小数点有效,第二次出现的小数点无效
始终忽略开头的0
console.log(parseFloat("123.45.67")) //123.45
console.log(parseFloat("0123.45.67")) //123.45
console.log(parseFloat("1.23e3")) //1230