
Урок 03 · 11 хв
Умови й порівняння
Половина багів тут — не в if, а в тому, як JS порівнює значення.
Код має розгалужуватися: дати знижку на велике замовлення, показати заглушку, якщо даних немає. Інструмент — if. Складність не в ньому, а в тому, що вважається рівним і що вважається істиною.
Truthy і falsy
В if потрапляє не лише true. Будь-яке значення зводиться до булевого, і falsy-значень усього вісім — усе інше істинне. Список варто запам'ятати повністю, він короткий: Falsy.
- Falsy:
false,0,-0,0n,"",null,undefined,NaN. - Усе інше truthy — зокрема
"0","false",[]і{}. if (items.length)— нормально: нуль елементів дасть falsy.if (count)небезпечно, якщо0— валідне значення. Пишиif (count !== undefined).
Короткий запис
Тернарник повертає значення, тому його зручно класти просто в const або в шаблонний рядок. Щойно гілок стало більше двох — повертайся до if або switch.
Документація
- MDN · Строга рівність — чим === відрізняється від ==
- MDN · Falsy — повний список хибних значень
- MDN · Тернарний оператор — умова як вираз
- MDN · ?? — запасне значення лише для null і undefined
Перевірка
Закріпи, поки не пішов далі
1. Чому дорівнює
"" == 0?2. Що дасть
if ([])?3. Чому дорівнює
0 ?? 10?4.
user.profileдорівнюєnull. Що повернеuser.profile?.city?