在线文档教程

Number.isNaN

Number.isNaN

Number.isNaN()方法确定传递的值是否为NaN和其类型是Number。它是原始的全局isNaN()的更强大的版本。

语法

Number.isNaN(value)

参数

value要被检测是否是NaN的值。

返回值

一个布尔值,表示给定的值是否是 NaN

描述

在 JavaScript 中,NaN最特殊的地方就是,我们不能使用相等运算符(== 和===)来判断一个值是否是NaN,因为NaN == NaNNaN === NaN都会返回false。因此,必须要有一个判断值是否是NaN的方法。

和全局函数isNaN()相比,该方法不会强制将参数转换成数字,只有在参数是真正的数字类型,且值为NaN的时候才会返回true

示例

Number.isNaN(NaN // true Number.isNaN(Number.NaN // true Number.isNaN(0 / 0 // true // e.g. these would have been true with global isNaN() Number.isNaN('NaN' // false Number.isNaN(undefined // false Number.isNaN{} // false Number.isNaN('blabla' // false // These all return false Number.isNaN(true Number.isNaN(null Number.isNaN(37 Number.isNaN('37' Number.isNaN('37.37' Number.isNaN('' Number.isNaN(' '

Polyfill

NaN不等于自己,也在JavaScript是唯一的价值。

Number.isNaN = Number.isNaN || function(value) {       return value !== value; }

规范

SpecificationStatusComment
ECMAScript 2015 (6th Edition, ECMA-262)The definition of 'Number.isnan' in that specification.StandardInitial definition.
ECMAScript Latest Draft (ECMA-262)The definition of 'Number.isnan' in that specification.Living Standard

浏览器兼容性

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic Support25(Yes)15No(Yes)9

FeatureAndroidChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
Basic Support(Yes)(Yes)(Yes)15No(Yes)9