javascript number数据类型(parseInt/parseFloat)

259 阅读1分钟

parseInt / parseFloat: 也是把其他数据类型转换为number类型的

处理原理和Number不一样,他们是把字符串转为数字类型(如果处理的值不是字符串,需要先转换为字符串然后在去转换 为number类型的)

      =>  从字符串最左边开始查找,把找到的有效数字字符转换为数字,一直遇到一个非有效数字字符为止,则结束查找

console.log(parseInt('12px'));  // => 12
console.log(parseInt('12px24'));  // =>12
console.log(parseInt('width: 24px')); // => NaN
console.log(parseInt('12.5px')); // =>12
console.log(parseFloat('12.5px')); // => 12.5  parseFloat比parseInt  多识别一个小数点

console.log(Number(true)); // => 1
console.log(parseInt(true)); // => 先把true转为字符串“true”   parseInt('true'); => NaN
console.log(parseInt(NaN)); // => NaN
console.log(Number(null)); // => 0
console.log(parseInt(null)); // => parseInt('null') => NaN
isNaN(Number(parseInt('0.8'))); // =>  parseInt('0.8') => 0  Number(0) => 0 isNaN(0)  => false
console.log(Number('')); // => 0
console.log(parseInt('')); // => NaN

toFixed:  保留小数点后面N位(最后的结果是一个字符串)

let n = 3.1415926;
console.log(n.toFixed(2)); // => 3.14

console.log(Number.MAX_SAFE_INTEGER); // =>  9007199254740991  最大安全数(js能够有效识别的最大整数)
console.log(9007199254740992 == 9007199254740993)  // => true  应该值不一样,但是超过最大值js无法精准计算

es6中提供了一个新的数据类型  BigInt:  管理超过安全数值的数字

console.log(BigInt(9007199254740991),BigInt(9007199254740993));

基本数据类型

number  string   boolean  null  undefined  symbol  => BigInt  新增的基本数据类型