好吧,所以我已经学习了3个月的Javascript,并且已经获得了很好的解决几个任务的机会。在我的书的开头,他们有NaN的例子,但他们通常涉及像
这样的事情NaN === NaN; // false
Number.NaN === NaN; // false
isNaN(NaN); // true
isNaN(Number.NaN); // true
我甚至看过其他stackoverflow帖子,但我仍然没有看到我可以在哪里使用它的情况。那就是说,这个全局属性在什么情况下对我有帮助?实际程序中有哪些实际情况?
答案 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
。