Number、parseInt、parseFloat比较
一、//字符串转换成数字
1、
let str='aa100'
console.log(Number(str))//NaN
console.log(parseInt(str))//NaN
console.log(parseFloat(str))//NaN
2、
let str='0aa100'
console.log(Number(str))//NaN
console.log(parseInt(str))//0
console.log(parseFloat(str))//0
3、
let str='10aa100'
console.log(Number(str))//NaN
console.log(parseInt(str))//10
console.log(parseFloat(str))//10
4、
let str='00a100'
console.log(Number(str))//NaN
console.log(parseInt(str))//0
console.log(parseFloat(str))//0
5、
let str='00100'; //以00开头的字符串转化数字
console.log(Number(str));//100
console.log(parseInt(str));//100
console.log(parseFloat(str))//100
6、
let str='0x100' //以0x开头字符串转化数字
console.log(Number(str))//256
console.log(parseInt(str))//256
console.log(parseFloat(str))//0
7、
let str='0xa100'
console.log(Number(str))//41216
console.log(parseInt(str))//41216
console.log(parseFloat(str))//0
8、
let str='0xz100'
console.log(Number(str))//NaN
console.log(parseInt(str))//NaN
console.log(parseFloat(str))//0
由1、2、3、4可知Number转化字符串时
含有字母的字符串会返回NaN(除0x开头的字符串)
数字字符串会舍弃前面的n个0从1开始的数字返回
以0x开头的字符串在后面之包含a-f和数字 会返回转换后的十进制数,如果含有a-f外的其它数字返回NaN
parseInt
以字母的字符串会返回NaN
数字开头的字符串会取值到字母处,(无字母会到结尾)
数字字符串会舍弃前面的n个0从1开始的数字返回
以0x开头的字符串在后面之包含a-f和数字 会返回转换后的十进制数,如果含有a-f外的其它数字返回NaN
parseFloat
数字字符串会舍弃前面的n个0从1开始的数字返回
0x开头的不能换算十六进制与十进制关系
二、整数
1、
let str=100 //整数
console.log(Number(str))//100
console.log(parseInt(str))//100
console.log(parseFloat(str))//100
2、
let str=100.00 //小数全为0
console.log(Number(str))//100
console.log(parseInt(str))//100
console.log(parseFloat(str))//100
3、
let str=100.01 //小数不全为0
console.log(Number(str))//100.01
console.log(parseInt(str))//100
console.log(parseFloat(str))//100.01
4、
let str=0.01
console.log(Number(str))//0.01
console.log(parseInt(str))//0
console.log(parseFloat(str))//0.01
5、
let str=0.10//以0结尾的小数
console.log(Number(str))//0.1
console.log(parseInt(str))//0
console.log(parseFloat(str))//0.1
Number
返回舍弃尾部0的全部值
parseInt
取整数
parseFloat
返回舍弃尾部0的全部值