关于javascript中关于number的学习内容

tech2025-05-25  5

number数据类型包括那些

正数、负数、浮点数、零NaN =>NaN表示not a Number不是一个有效数字,但他属于number类型Infinity:=>表示无穷大的值 -Infinity=>表示负的无穷的值

关于NaN

NaN和任何数都不想等,包括他自己

console.log(NaN=10); // =>false console.log(NaN==NaN); // =>false

强制将其他数据类型转换为数字

字符串:把字符串转换为数字,一旦发现字符串中出现非有效数字的字符,则结果为NaN.只有字符串中都是有效数字才能转换为具体的数字,空字符串换转换为0

console.log(Number('10')); // =>10 console.log(Number('10px')); // =>NuN console.log(Number()); // =>0

布尔值:把布尔值转换为数字=> true转换为1 ,false转换为0

console.log(Number(true)); // =>1 console.log(Number(false)); // =>0

空值: 把空值转换为数字=> null转换为0 undefined转换为NaN

console.log(Number(null)); // =>0 console.log(Number(undefined)); // =>NaN

symbol: 不能将symbol类型转换为数字,否则会报错

console.log(Number(symbol)); // =>Uncaught ReferenceError: symbol is not defined

对象:=>对象转换为数字=>先把对象转换为字符串,再把字符串转换为数字

普通对象转换为数字都为NaN

数组转换为数字,只有当数组长度为1,并且数组内的值为有效数字才能转换为对应的数字,或数组为空也可以转换为数字0,其余都转换为NaN

console.log(Number([])); // =>0 console.log(Number(['10'])); // =>10 console.log(Number(['aa'])); // =>NaN console.log(Number([10,12])); //=>NaN

函数:函数转换为数字都为NaN

console.log(Number(function fun(){})); // =>NaN

Number将其他类型转换为数字的方法

Number([value]); =>而isNaN在检测是否为有效数字是就是使用的这种方法parseInt([value]);parsrFloat([value]);

检测一个数是否为NaN

isNaN()=>想要验证一个数是否是有效数字可以通过使用isNaN()这个方法,是有效数字返回false,不是有效数字返回true

console.log(isNaN('AA')); // => true console.log(isNaN('12.5’)); // => false console.log(isNaN('12.5PX')); // => true console.log(isNaN([])); // => false console.log(isNaN([10])); // => false console.log(isNaN([10,20])); // => true console.log(isNaN({})); // => true console.log(isNaN(null)); // => false console.log(isNaN(undefined)); // => true console.log(isNaN(symbol)); // => 报错

parseInt/parseFloat将其他类型转换为数字

转换原理和Number转换不一样,他是把字符串转换为数字类型(如果处理的值不是字符串,需要先转换为字符串,然后再去转化为Number类型)转换原理:从字符串左边开始查找,把找到得 有效数字转换为数字字符串转换为数字,一直遇到一个非有效数字字符为止,则结束查找null/undefined类型都是NaN(先将null转换为普通字符串“null”在转换为数字,结果为NaN,=>所有的字符都一样)parseFloat比parseInt只是多识别一个小数点 console.log(parseInt('10')); // =>10 console.log(parseInt('10px')); // =>10 console.log(parseInt('wdith:20px')); // => NaN console.log(parseInt('12.5')); // =>12 console.log(parseFloat('12.5')); // =>12.5 console.log(parseInt(null)); // =>NaN console.log(parseFloat(false)); // =>NaN

最大安全数:

console.log(number_MAX_SAFE_INTEGER); //=>9007199254740991 (Js中最大的安全数=>Js能够识别得最大整数) console.log(9007199254740992==9007199254740993); //=>true(理想结果应该是false,但超过了最大安全数,Js无法精确计算)
最新回复(0)