From 074785cea106179cb3305637055ab0a009ca74f2 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:42:52 -0500 Subject: initial commit --- .../reference/global_objects/nan/index.html | 103 +++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 files/ru/web/javascript/reference/global_objects/nan/index.html (limited to 'files/ru/web/javascript/reference/global_objects/nan') diff --git a/files/ru/web/javascript/reference/global_objects/nan/index.html b/files/ru/web/javascript/reference/global_objects/nan/index.html new file mode 100644 index 0000000000..7c91aebb62 --- /dev/null +++ b/files/ru/web/javascript/reference/global_objects/nan/index.html @@ -0,0 +1,103 @@ +--- +title: NaN +slug: Web/JavaScript/Reference/Global_Objects/NaN +tags: + - JavaScript + - Property + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/NaN +--- +
{{jsSidebar("Objects")}}
+ +

Сводка

+ +

Глобальное свойство NaN является значением, представляющим не-число (Not-A-Number).

+ +
{{js_property_attributes(0, 0, 0)}}
+ +
+ +

{{EmbedInteractiveExample("pages/js/globalprops-nan.html")}}

+ + + +

Описание

+ +

NaN является свойством глобального объекта.

+ +

Начальным значением NaN является Not-A-Number (не-число) — то же самое значение, что и у {{jsxref("Number.NaN")}}. В современных браузерах NaN является ненастраиваемым и незаписываемым свойством. Даже когда это не так, избегайте его переопределения.

+ +

В программах NaN используется довольно редко. Это возвращаемое значение в ситуациях, когда математические ({{jsxref("Math")}}) функции не срабатывают должным образом (например, при вызове Math.sqrt(-1)) или когда функция, пытающаяся считать число из строки, терпит неудачу по причине того, что в строке не число (parseInt('blabla')).

+ +

Проверка на равенство NaN

+ +

NaN является неравным (посредством сравнения через ==!====, and !==) любому другому значению, включая другое значение NaN. Используйте {{jsxref("Number.isNaN()")}} или {{jsxref("Global_Objects/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
+ +

Спецификации

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
СпецификацияСтатусКомментарии
{{SpecName('ESDraft', '#sec-value-properties-of-the-global-object-nan', 'NaN')}}{{Spec2('ESDraft')}}
{{SpecName('ES6', '#sec-value-properties-of-the-global-object-nan', 'NaN')}}{{Spec2('ES6')}}
{{SpecName('ES5.1', '#sec-15.1.1.1', 'NaN')}}{{Spec2('ES5.1')}}
{{SpecName('ES1')}}{{Spec2('ES1')}}Initial definition. Implemented in JavaScript 1.3
+ +

Совместимость с браузерами

+ + + +

{{Compat("javascript.builtins.NaN")}}

+ +
+ +
+ +

Смотрите также

+ + -- cgit v1.2.3-54-g00ecf