一、Number
console.log(Number(true)); // 1
console.log(Number(false)); // 0
console.log(Number(1234)); // 1234
console.log(Number(null)); // 0
console.log(Number(undefined)); // NaN
console.log(Number('00123045')); // 123045
console.log(Number('00123.45')); // 123.45
console.log(Number('0xf')); // 15 字符串包含有效十六进制格式,转换为相同大小的十进制数值
console.log(Number('')); // 0
console.log(Number('@#@')); // NaN 除以上字符转,其他类型都为 NaN
二、parseInt
当第一个字符是数字,parseInt会继续解析第二个字符,直到解析完所有后续字符串或者遇到了一个非数字字符
console.log(parseInt(' 11 223 3')); // 11
console.log(parseInt(' 112233 ')); // 112233
console.log(parseInt('a1')); // NaN 如果第一个字符不是数字或者负号,parseInt() 就会返回NaN;空字符串也会返回NaN
console.log(parseInt('123.4')); // 123
parseInt方法有基模式,可以把二进制、八进制、十六进制或其他任何进制的字符串转换成整数。
console.log(parseInt("10",2)); // 2 转换二进制
console.log(parseInt("10",8)); // 8 转换八进制
console.log(parseInt("AF",16)); // 175 转换十六进制
三、parseFloat
从第一个字符(位置0)开始解析每一个字符,一直解析到字符串末尾,或者解析到遇见一个无效的浮点数字字符为止
字符串中第一个小数点是有效的,而第二个小数点是无效的,后面的字符串会被忽略
parseFloat只解析十进制,它没有第二个参数去指定基数的用法
如果字符串中包含的是一个可解析为正数的数(没有小数点,或者小数点后都是零),parseFloat() 会返回整数。
console.log(parseFloat('123AF')); // 123
console.log(parseFloat('0xA')); // 0
console.log(parseFloat('12.34')); // 12.34
console.log(parseFloat('12.34.56')); // 12.34
console.log(parseFloat('0123.4')); // 123.4
console.log(parseFloat('123.00')); // 123
parseInt和parseFloat区别
parseFloat解析的第一个小数点是有效的,而parseInt遇到小数点会停止解析;
parseFloat始终忽略前导的零,十六进制格式的字符串始终会被转换成0,parseInt第二个参数可以设置,转换进制。