Is Number.IsNaN()比isNaN()更糟糕吗?
- 论坛
- Is Number.IsNaN()比isNaN()更糟糕吗?
10 浏览
Is Number.IsNaN()比isNaN()更糟糕吗?
在JavaScript中,isNaN
似乎存在问题,比如:
isNaN('') isNaN(' ') isNaN(true) isNaN(false) isNaN([0])
它们都返回false,尽管它们明显都不是数字...
在ECMAScript 6中,草案中包含了一个新的Number.isNaN
,但我认为它也有问题...
我本以为
Number.isNaN('RAWRRR')
会返回true,因为它是一个字符串,无法转换为数字...然而...
看起来,我认为的...不是数字的东西,确实不是不是数字...
http://people.mozilla.org/~jorendorff/es6-draft.html#sec-isfinite-number
MDN上的例子说:
Number.isNaN("blabla"); // 如果使用isNaN,这将返回true
我不明白为什么这被称为"原始的isNaN的更健壮版本",因为我无法检查某些东西是否不是一个数字。
这意味着我们仍然需要进行实际的类型检查以及检查isNaN...这似乎很愚蠢...
http://people.mozilla.org/~jorendorff/es6-draft.html#sec-isnan-number
这里的ES3草案基本上说,除了Number.NaN,其他都是false。
还有其他人觉得这个有问题吗?还是我只是没有理解isNaN的用意?