Number类型使用IEEE754格式来表示整数和浮点值,这也是0.2 + 0.3不等于0.5的原因,
最基本的数值类型字面量格式是十进制整数
var a = 10;
Not a Number:不是一个数,但它属于数值类型
NaN的特点
console.log(NaN == NaN)
用于检测一个变量不是数值(Number)类型。isNaN()接收一个参数,这个参数可以是任何类型,这个函数会尝试把传入的参数转换为数值,某些不是数值的值会直接转换成数值,例如字符串"10"或Boolean值,不能转换为数值的值返回true,能转换的返回false
console.log( isNaN(NaN ) // true
console.log( isNaN(10 ) // false
console.log( isNaN('10') // false
console.log( isNaN('blue') // true
console.log(isNaN( true )) // false (true会被转换成1)
总结:
isNaN意思是:是不是非数值,是的话返回true,所有能被该函数转换能Number类型的值,都返回falsenull会转成数值,所以isNaN函数返回falseundefined不能转换成数值,返回true把非数值值转换为数值:
Number()转换规则:
true和false会被转换为1和0Number(true) // 1
Number(false) // 0
Number(1) // 1
Number(100) // 100
Number(null) // 0
Number(undefined) // NaN
原文:https://www.cnblogs.com/dobeco/p/11619100.html