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

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

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

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

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

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

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() стає таким корисним у певних обставинах.

Порада:

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

isNaN("abc");        // true
Number.isNaN("abc"); // false
Порада:

Number.isNaN() повертає true лише для значень, які є саме NaN. Це допоможе вам виключити інші "не числові" значення з вашої перевірки.

Number.isNaN(undefined); // false
Number.isNaN({});        // false
Порада:

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

Порада:

Завжди додавайте відповідні перевірки перед використанням математичних операцій, щоб уникнути випадкового отримання NaN. Якщо під час операцій ви отримаєте NaN, це може призвести до неправильних результатів у подальших обчисленнях.

Синтаксис

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));  // Конвертація не вдалася! Будь ласка, введіть вірний рядок для конвертації.