NaN是什么?
在JavaScript中,NaN代表的不是一个具体的数值。在进行不正当的运算之后,得到的结果,如图所示。是因为在不能正确的执行而出现了这样一个结果.
let a='helloworld';
console.log(a*3);
像这种,并不能得到数值的情况,就会出现结果NaN。
因为NaN不代表任何数据,也就是说,它不等于任何值,当然也包括,不等于自己。
console.log(NaN==NaN);
但是它是属于Number类型。
console.log(typeof(NaN))
为此,我们可以通过与NaN有关的一些方法,进行判断得到的结果是否是NaN也就是isNaN()。
此外,在es6新增数据结构Set中,它认为NaN和NaN是相等的关系。
因为,Set是与数组类似的能够实现去重的数据结构,在放进去两个NaN的时候,如果它认为NaN是相等的,那么就会删除其中一个,那么这个set对象的长度就是1,否则就是2。
const arr=new Set();
arr.add(NaN);
arr.add(NaN);
console.log(arr.size);