NaN
定义: 全称是 not a number , 代表非数字。在JavaScript中整数和浮点数都是Number类型。
特性1:
console.log(typeof NaN) //number
特性2:不等于自身
console.log(NaN == NaN) //false
console.log(NaN === NaN) //false
什么时候会出现NaN?
1.两个非数值的数进行运算
console.log('a' - 1) //NaN
console.log('a' + 1) //a1 (字符串的拼接)
console.log('a' - 'b') //NaN
console.log(Boolean - 2) //NaN
2.与NaN运算结果都是NaN
console.log(NaN + 'a') //NaNa (字符串的拼接)
console.log(NaN - 'a') //NaN
console.log(NaN + 3) //NaN
console.log(NaN - 3) //NaN
全局方法 isNaN()
如果传入的值不能转化为数字,返回true,否则返回false。换个说法,里面是NaN返回true,否则返回false。
const a = '12';
console.log(isNaN(a)) //false
const b = 'hi';
console.log(isNaN(b)) //true
const c = 12;
console.log(isNaN(c)) //false
Number.isNaN()
更加严格地判断是否是非数字,没有转化成数字的概念
console.log(Number.isNaN('12')) //false
console.log(Number.isNaN('h1')) //false
console.log(Number.isNaN(12)) //false
console.log(Number.isNaN('a' - 'b')) //true
console.log(Number.isNaN('a' - 1)) //true