学习JavaScript的第二天,对于NaN == NaN 的结果 为什么false 初学JavaScript的我也是懵懵 ,所以实践出真理 看以下程序
例:1.当对非Number类型的值进行运算时,会将这些值转换为Number,Number类型与NaN(非数值型数据 如:string)参与计算 结果也是NaN,任何值与NaN做运算都为NaN,所以最后所得结果为NaN
var a = "hello";
var b = 10;
console.log(a - b);
// 结果为NaN
2.当与NaN做加法运算时,会做拼接运算,非加法运算,只要与NaN做运算都为NaN
var a = "今天星期三";
var b = 10;
console.log(a + b);
// 结果为hello10
为什么NaN == NaN 的结果是false
NaN :Not a Number 表示不是一个数,非数值数据。每个非数值数据都是不同的,像我上面两个例子中的a,表示的数值并不相同,但结果仍是NaN,也就是说它可以表示很多不是数字的其他数据。所以它不和任何数相等,包括他本身。