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)); // =>NaNsymbol: 不能将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(){})); // =>NaNisNaN()=>想要验证一个数是否是有效数字可以通过使用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)); // => 报错