JavaScript·100 питань

[ITEM 5] QUESTION: Що таке truthy і falsy значення?

Відповідь

У мові JavaScript усі значення в контексті логічних операцій діляться на дві категорії: truthy, які приводяться до істини, і falsy, які приводяться до брехні. Розуміння цього поділу критично важливо для коректної роботи умовних конструкцій на зразок оператора if, тернарного оператора або логічних операторів І та АБО. Існує суворо обмежений список falsy значень, до якого входять булеве false, число нуль 0, порожній рядок, спеціальні значення null і undefined, а також числове значення NaN. Будь-яке інше значення, що існує в мові, автоматично вважається truthy і поводиться як істина в логічних умовах.

Особливу увагу варто приділяти складним типам даних, таким як масиви та об'єкти. Розробники-початківці часто помилково вважають, що порожній масив або порожній об'єкт мають бути еквівалентні falsy, проте в JavaScript будь-які масиви та об'єкти, навіть абсолютно порожні, є truthy значеннями. Це означає, що перевірка if ([]) завжди виконається успішно, що часто стає джерелом несподіваної поведінки коду. Для того щоб явно перетворити будь-яке значення до логічного типу в коді, розробники використовують конструктор Boolean(value) або подвійне заперечення, що дозволяє точно контролювати логіку роботи додатків і уникати прихованих помилок під час оцінки умов.

Чи корисна ця відповідь?

Інші питання цієї теми

Пов’язані питання з інших тем