首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

NaN

全局属性NaN表示 Not-A-Number 的值。

| Property attributes of NaN |

|:----|

| Writable | no |

| Enumerable | no |

| Configurable | no |

语法

代码语言:javascript
复制
NaN

描述

NaN 是一个全局对象的属性。

NaN 属性的初始值就是 NaN,和 Number.NaN 的值一样。在现代浏览器中(ES5中), NaN 属性是一个不可配置(non-configurable),不可写(non-writable)的属性。但在ES3中,这个属性的值是可以被更改的,但是也应该避免覆盖。

编码中很少直接使用到 NaN。通常都是在计算失败时,作为 Math 的某个方法的返回值出现的(例如:Math.sqrt(-1))或者尝试将一个字符串解析成数字但失败了的时候(例如:parseInt("blabla"))。

判断一个值是否是NaN

等号运算符(=====) 不能被用来判断一个值是否是 NaN。必须使用Number.isNaN()isNaN() 函数。在执行自比较之中:NaN,也只有NaN,比较之中不等于它自己。

代码语言:javascript
复制
NaN === NaN;        // false
Number.NaN === NaN; // false
isNaN(NaN);         // true
isNaN(Number.NaN);  // true

function valueIsNaN(v) { return v !== v; }
valueIsNaN(1);          // false
valueIsNaN(NaN);        // true
valueIsNaN(Number.NaN); // true

规范

Specification

Status

Comment

ECMAScript 1st Edition (ECMA-262)

Standard

Initial definition. Implemented in JavaScript 1.3

ECMAScript 5.1 (ECMA-262)The definition of 'NaN' in that specification.

Standard

ECMAScript 2015 (6th Edition, ECMA-262)The definition of 'NaN' in that specification.

Standard

ECMAScript Latest Draft (ECMA-262)The definition of 'NaN' in that specification.

Draft

浏览器兼容性

Feature

Chrome

Edge

Firefox (Gecko)

Internet Explorer

Opera

Safari

Basic support

(Yes)

(Yes)

(Yes)

(Yes)

(Yes)

(Yes)

Feature

Android

Chrome for Android

Edge

Firefox Mobile (Gecko)

IE Mobile

Opera Mobile

Safari Mobile

Basic support

(Yes)

(Yes)

(Yes)

(Yes)

(Yes)

(Yes)

(Yes)

扫码关注腾讯云开发者

领取腾讯云代金券