Сводка
Глобальное свойство NaN является значением, представляющим не-число (Not-A-Number).
Атрибуты свойстваNaN |
|
|---|---|
| Записываемое | нет |
| Перечисляемое | нет |
| Настраиваемое | нет |
Синтаксис
NaN
Описание
NaN является свойством глобального объекта.
Начальным значением NaN является не-число (Not-A-Number) — тоже самое значение имеет Number.NaN. В современных браузерах NaN является ненастраиваемым и незаписываемым свойством. Даже когда это не так, избегайте его переопределения.
В программах NaN используется редко. Он возникает, когда математические функции не могут вернуть значение (например, при вызове Math.sqrt(-1)) или когда функция считывания числа из строки не может это сделать, потому что в строке не число (parseInt('blabla')).
Проверка на равенство NaN
Операторы равенства (== и ===) не могут использоваться для проверки значения на равенство NaN. Вместо них используйте функции Number.isNaN() или isNaN().
NaN === NaN; // false Number.NaN === NaN; // false isNaN(NaN); // true isNaN(Number.NaN); // true
Спецификации
| Спецификация | Статус | Комментарии |
|---|---|---|
| ECMAScript 1-е издание. | Стандарт | Изначальное определение. Реализована в JavaScript 1.3. |
| ECMAScript 5.1 (ECMA-262) Определение 'NaN' в этой спецификации. |
Стандарт | |
| ECMAScript 6 (ECMA-262) Определение 'NaN' в этой спецификации. |
Кандидат в рекомендации |
Совместимость с браузерами
| Возможность | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|
| Базовая поддержка | (Да) | (Да) | (Да) | (Да) | (Да) |
| Возможность | Android | Chrome для Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|
| Базовая поддержка | (Да) | (Да) | (Да) | (Да) | (Да) | (Да) |