大家好,我是逆战班的一名学员,今天给大家分享的是关于NaN的内容。
NaN(not a number),它不是一个数值,表示的是存储的数据的数据类型;如果有非数值参与计算,结果就是NaN。下面给大家举几个例子。
var str1 = “北京”; var str2 = “上海”;
举例一:var res1 = str1 - str2;
console.log(res1);
执行结果是:NaN。(因为两个变量中存储的数据都不是数值。)
举例二:var res2 = 100 - str1;
console.log(res2);
执行结果是:NaN。(因为有NaN参与,所以结果也是NaN。)
举例三:var res3 = 100+str3;
Console.log(res3);
执行结果是:100北京。(如果是+号,两侧都是数值,会执行加法操作;有一个字符串,就执行加法操作。)
由这三个例子我们可以做出总结:
<1>,NaN虽然是一个非数值,但是一般是算数运算的结果,因此NaN仍然是数值类型。
<2>,在执行运算时,非加法运算只要有NaN参与,执行结果都是NaN。如果是加法运算的话,有NaN,执行字符串拼接操作。如果都是数值,执行加法操作。
<3>,NaN == NaN 执行结果永远是false。
在JS中,虽然NaN表示的是非数值,但是这个非数值也是不同的,因此NaN永远不等于NaN。