You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Нужна ли нам эта функция? Разве не можем ли мы просто сравнить `=== NaN`? К сожалению, нет. Значение `NaN` уникально тем, что оно не является равным ни чему другому, даже самому себе:
298
+
Нужна ли нам эта функция? Разве не можем ли мы просто сравнить `=== NaN`? К сожалению, нет. Значение `NaN` уникально тем, что оно не является равным ничему другому, даже самому себе:
299
299
300
300
```js run
301
301
alert( NaN === NaN ); // false
@@ -319,17 +319,17 @@ let num = +prompt("Enter a number", '');
319
319
alert( isFinite(num) );
320
320
```
321
321
322
-
Помните, что пустая строка интерпретируется как `0` во всех числовых функциях, включая`isFinite`.
322
+
Помните, что пустая строка интерпретируется как `0` во всех числовых функциях, включая`isFinite`.
323
323
324
324
````smart header="`Number.isNaN` и `]`"
325
-
Методы [Number.isNaN](https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Number/isNaN) и [Number.isFinite](https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Number/isNaN) - это более "строгие" версии функций `isNaN` и `isFinite`. Они не преобразуют аргумент в число, а наоборот - первым делом проверяют, является ли аргумент числом (принадлежит ли он к типу `number`).
325
+
Методы [Number.isNaN](https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Number/isNaN) и [Number.isFinite](https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Number/isNaN) - это более "строгие" версии функций `isNaN` и `isFinite`. Они не преобразуют аргумент в число, а наоборот - первым делом проверяют, является ли аргумент числом (принадлежит ли он к типу `number`).
326
326
327
327
-`Number.isNaN(value)` возвращает `true` только в том случае, если аргумент принадлежит к типу `number` и является `NaN`. Во всех остальных случаях возвращает `false`.
328
328
329
329
```js run
330
330
alert( Number.isNaN(NaN) ); // true
331
331
alert( Number.isNaN("str" / 2) ); // true
332
-
332
+
333
333
// Обратите внимание на разный результат:
334
334
alert( Number.isNaN("str") ); // false, так как "str" является строкой, а не числом
335
335
alert( isNaN("str") ); // true, так как isNaN сначала преобразует строку "str" в число и в результате преобразования получает NaN
@@ -341,12 +341,12 @@ alert( isFinite(num) );
341
341
alert( Number.isFinite(123) ); // true
342
342
alert( Number.isFinite(Infinity) ); // false
343
343
alert( Number.isFinite(2 / 0) ); // false
344
-
344
+
345
345
// Обратите внимание на разный результат:
346
346
alert( Number.isFinite("123") ); // false, так как "123" является строкой, а не числом
347
347
alert( isFinite("123") ); // true, так как isFinite сначала преобразует строку "123" в число 123
348
348
```
349
-
349
+
350
350
Не стоит считать `Number.isNaN` и `Number.isFinite` более "корректными" версиями функций `isNaN` и `isFinite`. Это дополняющие друг-друга инструменты для разных задач.
0 commit comments