Наповнення JS розділу

Добридень, Пані та Панове, завдяки вам вдалося зібрати більше 19тис грн з необхідних 15тис на впровадження JS розділу.

JS розділ вже впроваджено - переходимо до його наповнення і почнемо бігти довгий марафон, адже JS має більше 1100 різноманітних методів, властивостей, подій і т.д., які необхідно описати.

Будемо працювати, і вдень, і вночі, щоб орієнтовно взимку закінчити наповнювати JS розділ!

Ви також можете допомогти нам в цьому. Долучайтеся до нашої спільноти в дискорді - ставайте її частиною і допомагайте нашому розвитку.

Також, підтримуйте нас матеріально.

JS метод Global.isNaN()

Загальний опис

isNaN() - це глобальний метод в JavaScript, призначений для перевірки значень на їх відповідність "не числу" (Not-a-Number). У мовах програмування іноді виникають ситуації, коли результат обчислення або операції не може бути визначений як дійсне число. У таких випадках JavaScript повертає спеціальне значення – NaN.

Чому потрібен метод isNaN()? При програмуванні на JavaScript може виникнути необхідність розібратися, чи є певне значення дійсним числом. І хоча NaN сам по собі є числовим типом даних в JavaScript, спроби порівняти його з іншими значеннями можуть призвести до непередбачуваних результатів. Наприклад, NaN не є рівним самому собі:

console.log(NaN === NaN); // false

Отже, для визначення того, чи є значення NaN, ми використовуємо isNaN().

Як і де використовувати isNaN()? Припустимо, у вас є програма, яка приймає введені користувачем дані, і вам потрібно переконатися, що користувач вводить тільки числові значення. Щоб це зробити, ви можете використовувати isNaN() таким чином:

let userValue = prompt("Введіть число:");
if (isNaN(userValue)) {
    console.log("Це не число!");
} else {
    console.log("Дякуємо за число!");
}

Основні сфери застосування isNaN() це обробка введення користувача, перевірка результатів обчислень або будь-яка інша ситуація, коли може виникнути потреба визначити, чи є значення дійсним числом.

Тепер розглянемо деякі особливості роботи isNaN(). Цей метод може повертати не завжди очікувані результати, особливо при роботі з нечисловими типами даних. Наприклад:

console.log(isNaN("123")); // false, бо рядок може бути перетворений на число
console.log(isNaN("Hello")); // true, бо рядок "Hello" не може бути перетворений на число

Якщо ви хочете мати більший контроль над перевіркою значень на NaN, рекомендується використовувати Number.isNaN(). Відмінність цього методу в тому, що він не намагається перетворити значення на число перед перевіркою:

console.log(Number.isNaN("123")); // false
console.log(Number.isNaN("Hello")); // false
console.log(Number.isNaN(NaN)); // true
Нотатка:

Якщо ви використовуєте isNaN() після математичних операцій, пам'ятайте, що він поверне true, якщо результат буде некоректним. Наприклад:

let result = 0/0; 
if (isNaN(result)) {
    console.log("Результат некоректний");
}
Порада:

Пам'ятайте, що isNaN() перевіряє, чи є конкретне значення NaN, а не чи є воно числом. Для перевірки на те, чи є значення числовим, можна використовувати таку комбінацію: !isNaN(parseFloat(value)) && isFinite(value).

Порада:

Використовуйте Number.isNaN() замість глобального isNaN() для точнішої перевірки на NaN. Глобальний isNaN() може привести рядки до чисел, що може призвести до непередбачуваних результатів.

console.log(isNaN("100F")); // true, бо не може привести до числа
console.log(Number.isNaN("100F")); // false, бо це рядок
Порада:

Коли працюєте з бібліотеками або фреймворками, які можуть повертати невизначені значення, завжди використовуйте isNaN() або Number.isNaN() для перевірки результатів перед їхньою обробкою. Це допоможе уникнути непередбачених помилок і збоїв у вашому коді.

Синтаксис

isNaN(value)

Параметри

*value

Значення, яке потрібно перевірити на NaN.

Return

bool

Повертає true, якщо подане значення є NaN після його конвертації в число; в іншому випадку повертає false.

Переглядачі

Переглядач

1

1

1

3

12

Переглядач

4.4

18

4

1

Переглядач

0.10.0

1.0

Приклади


Цей код створює простий інтерфейс, де користувач може ввести значення для перевірки. Після натискання на кнопку "Перевірити", код перевіряє, чи є введене значення числом або ні, і відображає відповідне повідомлення.

У цьому прикладі ми створили функцію isValidNumber(), яка перевіряє, чи є введене користувачем значення дійсним числом. Якщо воно не є числом (NaN) або являє собою пустий рядок, функція повертає false. Інакше - true.

// Функція для перевірки, чи є введене значення коректним числом
function isValidNumber(inputValue) {
    // Якщо значення є NaN або пустим рядком, повертаємо false
    return !isNaN(inputValue) && inputValue !== "";
}

// Тестуємо функцію на декількох прикладах
console.log(isValidNumber("123"));  // true, бо це валідне число
console.log(isValidNumber("abc"));  // false, бо це не число
console.log(isValidNumber(""));     // false, бо це пустий рядок

У другому прикладі ми створили функцію safeDivide(), яка ділить два числа. Якщо друге число (дільник) дорівнює нулю, результатом ділення буде NaN. Функція перевіряє результат на NaN і, якщо він NaN, повертає повідомлення "Ділення на нуль!". Якщо результат коректний, він повертається як відповідь.

// Функція для ділення двох чисел з перевіркою на ділення на нуль
function safeDivide(a, b) {
    let result = a / b;
    
    // Якщо результат ділення є NaN, повертаємо попередження
    if (isNaN(result)) {
        return "Ділення на нуль!";
    }
    
    return result;
}

// Тестуємо функцію
console.log(safeDivide(10, 2));  // 5
console.log(safeDivide(10, 0));  // Ділення на нуль!