JS властивість Number.NaN
Загальний опис
Number.NaN – це спеціальне значення у JavaScript, яке вказує на "не число" (англ. "Not a Number"). Ця властивість використовується для представлення невизначеного або некоректного числового результату. У програмуванні виникають ситуації, коли результат операції неможливо визначити як дійсне число, і саме тут Number.NaN стає незамінним.
Наприклад, при спробі поділити 0 на 0 або отримати квадратний корінь з від'ємного числа, результат буде NaN.
Використання Number.NaN:
Для перевірки значень на "не число" замість прямого порівняння із Number.NaN рекомендується використовувати вбудовану функцію isNaN(), оскільки пряме порівняння може бути ненадійним.
Приклад:
let result = 0 / 0;
if (isNaN(result)) {
console.log("Результат є NaN");
} else {
console.log("Результат є дійсним числом");
}
В цьому прикладі результат поділу 0 на 0 є NaN, тому буде виведено повідомлення "Результат є NaN".
Особливості Number.NaN:
Number.NaNє єдиною властивістю в JavaScript, яка не є рівною самій собі. Тобто, вираз(Number.NaN === Number.NaN)повернеfalse.- Завжди використовуйте функцію
isNaN()для перевірки наNaN, а не пряме порівняння. - Існує також глобальна функція
isNaN(), але для надійності краще користуватисяNumber.isNaN(), яка є строгіше типізованою.
- Порада
-
Якщо ви спробуєте порівняти
NaNз іншимNaNза допомогою оператора рівності (==або===), ви отримаєтеfalse. Це особливістьNaN, і потрібно бути уважним з цим.
автор: Bondconsole.log(NaN === NaN); // false - Порада
-
Якщо хоч одне з значень у вашій математичній операції є
NaN, результат завжди будеNaN. Тому завжди переконуйтеся, що працюєте з дійсними числовими значеннями перед виконанням обчислень.
автор: Bondlet someValue = NaN; console.log(someValue + 5); // NaN - Нотатка
-
NaNстоїть за "Not-a-Number" і вказує на результат операції, яка математично недопустима або не може бути представлена. Це важливо розуміти, щоб правильно інтерпретувати результати обчислень.
автор: Bondlet result = Math.sqrt(-1); console.log(result); // NaN - Нотатка
-
Щоб перевірити, чи є деяке значення
NaN, не звертайтеся напряму доNumber.NaN, оскільки порівняння з ним може дати неочікуваний результат. Замість цього використовуйте функціюisNaN().
автор: Bondlet value = Math.sqrt(-1); if (isNaN(value)) { console.log("Значення не є числом"); }
Синтаксис
Number.NaN
Переглядачі
| Переглядач | |||||
|---|---|---|---|---|---|
| 1 | 1 | 1 | 3 | 12 |
| Переглядач | ||||
|---|---|---|---|---|
| 4.4 | 18 | 4 | 1 |
| Переглядач | ||
|---|---|---|
| 0.10.0 | 1.0 |
Приклади
+ запропонувати свій приклад у пісочниці
У цьому прикладі ми покажемо, як використовувати Number.NaN для перевірки, чи є значення "не числом". Це може бути корисно, коли потрібно впевнитися, що результат обчислень можна використовувати в подальших обчисленнях.
const result = Math.sqrt(-1);
// Перевіряємо, чи результат є NaN
if (isNaN(result)) {
console.log('Результат не є дійсним числом');
} else {
console.log('Результат:', result);
}
У цьому прикладі ми розглянемо, як видалити всі значення "не числом" (NaN) з масиву чисел. Це може бути корисно, наприклад, після перетворення рядків масиву в числа, коли деякі з рядків не можуть бути конвертовані у валідні числові значення.
const strings = ['5', '10', 'apple', '25', 'orange'];
const numbers = strings.map(str => parseFloat(str));
// Видаляємо всі NaN значення з масиву
const validNumbers = numbers.filter(num => !isNaN(num));
console.log(validNumbers); // [5, 10, 25]
Коментарі
Коментарів ще немає — будьте першим!