NaN
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Сводка
Глобальное свойство NaN
является значением, представляющим не-число (Not-A-Number).
Атрибуты свойства NaN |
|
---|---|
Записываемое | нет |
Перечисляемое | нет |
Настраиваемое | нет |
Интерактивный пример
Описание
NaN
является свойством глобального объекта.
Начальным значением NaN
является Not-A-Number (не-число) — то же самое значение, что и у Number.NaN
. В современных браузерах NaN
является ненастраиваемым и незаписываемым свойством. Даже когда это не так, избегайте его переопределения.
В программах NaN
используется довольно редко. Это возвращаемое значение в ситуациях, когда математические (Math
) функции не срабатывают должным образом (например, при вызове Math.sqrt(-1)
) или когда функция, пытающаяся считать число из строки, терпит неудачу по причине того, что в строке не число (parseInt('blabla')
).
Проверка на равенство NaN
NaN
является неравным (посредством сравнения через ==
, !=
, ===
, and !==
) любому другому значению, включая другое значение NaN. Используйте Number.isNaN()
или isNaN()
, чтобы наиболее понятным образом определить является ли значение значением NaN. Или выполните само-сравнение: NaN, и только NaN, в результате такого сравнения будет неравным самому себе.
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
Тем не менее, обратите внимание на разницу между функцией isNaN()
и методом Number.isNaN()
: первая вернёт true
, если значение в настоящий момент является NaN
, или если оно станет NaN
после того, как преобразуется в число, в то время как последний вернёт true
, только если текущим значением является NaN
:
isNaN("hello world"); // true
Number.isNaN("hello world"); // false
Спецификации
Specification |
---|
ECMAScript Language Specification # sec-value-properties-of-the-global-object-nan |
Совместимость с браузерами
BCD tables only load in the browser