Що таке truthy і falsy значення?
У мові JavaScript усі значення в контексті логічних операцій діляться на дві категорії: truthy, які приводяться до істини, і falsy, які приводяться до брехні. Розуміння цього поділу критично важливе для коректної роботи умовних конструкцій на кшталт оператора if, тернарного оператора або логічних операторів І та АБО. Існує суворо обмежений список falsy значень, до якого входять булеве false, число нуль 0, порожній рядок, спеціальні значення null і undefined, а також числове значення NaN. Будь-яке інше значення, що існує в мові, автоматично вважається truthy і поводиться як істина в логічних умовах.
Особливу увагу варто приділяти складним типам даних, таким як масиви та об'єкти. Початківці-розробники часто помилково вважають, що порожній масив або порожній об'єкт мають бути еквівалентні falsy, однак у JavaScript будь-які масиви й об'єкти, навіть абсолютно порожні, є truthy значеннями. Це означає, що перевірка if ([]) завжди виконається успішно, що часто стає джерелом несподіваної поведінки коду. Для того щоб явно перетворити будь-яке значення до логічного типу в коді, розробники використовують конструктор Boolean(value) або подвійне заперечення, що дозволяє точно контролювати логіку роботи додатків і уникати прихованих помилок при оцінці умов.