JS метод Number.isNaN()
Загальний опис
Number.isNaN() — це статичний метод в JavaScript, що дозволяє перевірити, чи є задане значення спеціальним значенням "Not-a-Number" (NaN). Його основна корисність полягає в здатності точно розрізняти значення NaN від інших значень. На практиці це може бути корисно, коли потрібно виявити помилкові операції, які призводять до NaN, особливо під час роботи з математичними обчисленнями.
По-перше, давайте розглянемо, як використовувати Number.isNaN() в базових ситуаціях. Цей метод приймає один аргумент та повертає true, якщо значення цього аргументу є NaN, і false - в іншому випадку.
console.log(Number.isNaN(NaN)); // true
console.log(Number.isNaN(42)); // false
console.log(Number.isNaN('42')); // false
Зверніть увагу, що Number.isNaN() відрізняється від глобальної функції isNaN(). Остання перетворює свій аргумент в число, тому може вважати деякі значення "не числами", хоча насправді вони ними не є.
console.log(isNaN('Hello')); // true, оскільки 'Hello' не може бути перетворено в число
console.log(Number.isNaN('Hello')); // false, оскільки 'Hello' не є NaN
Основна відмінність полягає у тому, що Number.isNaN() не намагається перетворити введене значення на число. Це робить його надійнішим для перевірки, чи є конкретне значення дійсно NaN.
Важливо пам'ятати, що NaN у JavaScript має декілька унікальних особливостей. Наприклад, NaN не є рівним самому собі. Тому пряма порівняльна перевірка value === NaN завжди повертає false. Саме тому метод Number.isNaN() стає таким корисним у певних обставинах.
| Порада: | Хоча обидві функції називаються
|
| Порада: |
|
| Порада: | Незважаючи на те, що |
| Порада: | Завжди додавайте відповідні перевірки перед використанням математичних операцій, щоб уникнути випадкового отримання |
Синтаксис
Number.isNaN(value)
Параметри
- *
value Значення, яке необхідно перевірити на
NaN.
Return
booleanПовертає булеве значення
true, якщо подане значення є числом із значеннямNaN. В іншому випадку повертаєfalse.
Переглядачі
| Переглядач | |||||
|---|---|---|---|---|---|
25 |
15 |
9 |
15 |
12 |
| Переглядач | ||||
|---|---|---|---|---|
4.4 |
25 |
15 |
9 |
| Переглядач | ||
|---|---|---|
0.10.0 |
1.0 |
Приклади
Цей приклад дозволить користувачу ввести рядок у текстове поле, а потім натиснути кнопку для перевірки, чи є введене значення NaN за допомогою методу Number.isNaN(). Результат буде відображено під кнопкою.
У цьому прикладі ми використовуємо метод Number.isNaN() для перевірки, чи є результат ділення числа на нуль "не числом" (NaN).
const result1 = 5 / "text"; // Намагаємося поділити число на текстовий рядок
const result2 = 10 / 2; // Звичайне ділення
console.log(Number.isNaN(result1)); // true
console.log(Number.isNaN(result2)); // false
У цьому прикладі ми створюємо функцію, яка перетворює рядок у число, і використовує Number.isNaN() для повертання спеціального повідомлення, якщо конвертація не вдалася.
function convertToNumber(str) {
const num = Number(str);
// Перевіряємо, чи є результат конвертації "не числом"
if (Number.isNaN(num)) {
return "Конвертація не вдалася! Будь ласка, введіть вірний рядок для конвертації.";
}
return num;
}
const str1 = "25.5";
const str2 = "Hello";
console.log(convertToNumber(str1)); // 25.5
console.log(convertToNumber(str2)); // Конвертація не вдалася! Будь ласка, введіть вірний рядок для конвертації.
