Node.js中的Number.isNaN('asd')===false!什么给予
Number.isNaN('asd') === false in Node.js! What gives?
试试:在Node.js或Firefox中,打开一个REPL,然后键入:
Number.isNaN('asdf');
这怎么可能不是NaN
?如果不是这个,NaN
是什么?
您有一个误解。NaN
的意思是不是数字,这并不意味着任何不是数字的东西都是NaN
。
NaN
是浮点运算中的一个特殊值,表示运算的未定义结果。例如,作为结果,0 / 0
通常产生NaN
。
更多信息请点击此处。
语言规范中没有Number.isNaN()
的概念。唯一指定的函数是全局isNaN
(15.1.2.4),它将在任何不是数字或无法正确转换为数字的情况下正确返回true
。
Number.isNaN
(在NaN
上返回true)是,可能是下一个标准草案的实现细节部分(参见remyabel的回答),isNaN
可以在内部使用。
请注意,Number.IsNaN
的支持似乎有限。
此输出:
console.log(Number.isNaN("blabla"));
给出false
和false !== NaN
:
console.log(false !== NaN)
console.log(false !== Number.NaN);
这里有一个参考:
当使用一个参数编号调用Number.isNaN时采取以下步骤:
If Type(number) is not Number, return false. If number is NaN, return true. Otherwise, return false.
此函数与全局isNaN函数(18.2.3)的不同之处在于在确定之前,它不会将其参数转换为数字无论是NaN。
我是l33t,因为我有1337的声誉
试试这个:
function checkNaN(value)
{
return value !== value;
}
它之所以有效,是因为(我相信)NaN是JS中唯一一个不严格等于自身的东西。
这是EcmaScript 6标准的一部分。
Number.isNaN
在不强制参数的情况下返回值是否为NaN。
Number.isNaN("xmfds"); // false
Number.isNaN("ose"); // false
isNaN
在将参数强制为Number
类型后返回值是否为NaN。
isNaN("ose") -> isNaN( Number("ose") ) -> isNaN(NaN); // true
相关文章:
- 这是什么 ==- javascript 运算符
- 如果 a 为 false,则 if(a) === if(false)
- 如何在angularJS中编辑时,如果DB中的值为true,则设置复选框,如果值为false,则取消选中复选框
- 我的单元测试选项是什么
- 什么是'true'和'false'和'null'
- Node.js中的Number.isNaN('asd')===false!什么给予
- 在默认情况下将可枚举设置为 false 的 JS 中创建对象属性的其他方法是什么
- 有什么理由使用 !1 而不是 false
- 回调(false)和回调(true)有什么作用
- onsubmit=“return false”是什么意思?(JavaScript,jQuery)
- allowBlank:false在extjs字段中有什么用途
- 什么时候我应该在addEventListener中设置useCapture为false
- 什么's为href和'添加void(0)的效果;return false'锚点标记的点击事件监听
- Javascript中空字符串为false的原因是什么?
- 在与mongoskin的联系中,safe:true和safe:false之间有什么区别?以及如何使用它
- $ionicView.enter和cache:false之间的区别是什么
- false在addEventListener的末尾做什么
- 我什么时候应该向AJAX返回true/false;真“/"false”;
- ' return false; '对自定义事件的影响是什么?
- 什么原因导致/*global module: false*/在grunt.js