为什么NaN有用,在什么情况下

时间:2016-07-06 14:18:10

标签: javascript nan

好吧,所以我已经学习了3个月的Javascript,并且已经获得了很好的解决几个任务的机会。在我的书的开头,他们有NaN的例子,但他们通常涉及像

这样的事情
NaN === NaN;        // false
Number.NaN === NaN; // false
isNaN(NaN);         // true
isNaN(Number.NaN);  // true

我甚至看过其他stackoverflow帖子,但我仍然没有看到我可以在哪里使用它的情况。那就是说,这个全局属性在什么情况下对我有帮助?实际程序中有哪些实际情况?

2 个答案:

答案 0 :(得分:1)

NaN是由数学运算产生的数字,这是无意义的:

Number('abc'); // NaN
0 / 0;         // NaN
Math.sqrt(-1); // NaN
Math.log(-1);  // NaN
Math.asin(2);  // NaN

当你做一些数学运算并且某些操作数是NaN时,它会传播到结果:

NaN + 2;          // NaN
NaN * 0;          // NaN
1 / NaN;          // NaN
Math.pow(NaN, 2); // NaN

答案 1 :(得分:-1)

当你的值不是数字(但应该是)时,

NaN最有用。您只会在几个地方从标准API返回NaN,特别是parseInt

  

parseInt函数将其第一个参数转换为字符串,解析它,并返回一个整数或NaN。

这里的大部分价值是,一旦将NaN引入数学运算符链,就会定义运算(即使它们对初始操作数没有意义,因此产生{{1} }}并将继续返回NaN。正如您在the / instructions中看到的,大多数数学运算符都有一个子句,如果任一操作数都不是数字,则立即返回NaN