有没有可能在不使用isNaN的情况下检测到NaN ?
Is it possible to detect NaN without using isNaN?
我可以用JavaScript写一个isNan()函数吗?JavaScript可以检查确定一个变量是NaN
没有原生isNaN
函数?
如果是一个数字,且不等于其本身,则为NaN。
注意:正如@pst所指出的,数量约束是不必要的。
NaN
似乎是JS中的唯一值!这个问题的完整解决方案:
var is_NaN = function(n) {
return (n !== n);
}
is_NaN(1/'a'); // true
isNaN(1/'a'); // true
因为在JavaScript中NaN
不等于它自己。表达式NaN === NaN
总是返回false
第二个解:
可以使用内置的isFinite
函数。isFinite
检查输入的数字是否既不是 Infinity
也不是 NaN
。
isFinite(NaN) // false
isFinite(Infinity) // false
isFinite(1) // true
isFinite(true) // true, because argument true is equal to 1
isFinite('a') // false
isFinite(1/'a') // false
ECMA 6
Number.isNaN(42) === false
Number.isNaN(NaN) === true
http://es6-features.org/NumberTypeChecking
相关文章:
- 在不阻止默认行为的情况下检测IE10中的缩放
- 如何在不检查HTTP标头的情况下检测移动浏览器
- 对于如何在没有modernizr的情况下用边界半径的功能检测检查来替换我的旧浏览器检查
- 如何在javascript已经检测到的情况下将屏幕分辨率数据调整为web
- 为什么在设置了OnPush标志的情况下,Angular2在更改检测过程中同时捕捉到引用更改和基元更改
- 如何在不发出 HTTP 请求的情况下检测 SQL 数据库中的更改
- 在不使用jQuery的情况下检测javascript中的点击
- 如何在不使用 DOM 突变事件的情况下检测 AJAX 节点插入
- activateJavaScript.org如何在没有JavaScript的情况下检测您的浏览器
- 如何在没有加载事件的情况下检测Iframe何时更改位置并触发函数
- 如何在没有JavaScript库的情况下检测转换结束
- 在不使用pageYOffset的情况下检测轮子方向的Javascript(或其他语言)
- 如何在不轮询的情况下检测元素何时不再具有影子根
- 如何在不使用eval()或requireJS的情况下检测插件或脚本是否已经加载
- 这个文档是如何在根本没有设置的情况下检测到cookie的
- 如何在不重新加载的情况下检测页面导航?
- 如何在没有jQuery的情况下检测DOM元素的变化
- 在不使用用户代理的情况下检测javascript中的iPad
- 有没有办法在没有jquery的情况下检测窗口的位置
- 有没有可能在不使用isNaN的情况下检测到NaN ?