NaN(not a number)字面意思就是“非数字”,但这种叫法不准确或者说有歧义,因为typeof(NaN)=number,所以NaN本身是number类型,换言之NaN就是一个数字,只不过这个数字比较特殊罢了。
我觉得应该把NaN称为:不等于任何一个数字的数字,而不是说它不是数字,当然也包括它自己,NaN==NaN是返回false的。
举个栗子:
有三个人,李雷,Lucy,以及某个混蛋(注意:这里说的某个混蛋就是第三个人,至于他是谁,我也不知道,因为我们常说:你这个混蛋真不是人! 额......其实混蛋也是人)
var 李雷 = new 人
var Lucy = new 人
console.log(李雷 == Lucy); //返回false
这样就好理解了吧!
更直接一点:
console.log(某个混蛋 == 某个混蛋); //返回false,这个也好理解。