Truthy/falsy значення
Визначення
У JavaScript будь-яке значення можна привести до логічного типу (boolean).
- Якщо після приведення воно стає
true-> це truthy значення. - Якщо стає
false-> це falsy значення.
Перевірити легко:
javascript
Boolean(value) // поверне true або false
!!value // короткий еквівалентСписок усіх falsy значень (всього 8)
| Значення | Опис |
|---|---|
false | хиба |
0 | число нуль |
-0 | від'ємний нуль |
0n | BigInt нуль |
"" | порожній рядок |
null | "нічого" |
undefined | не визначено |
NaN | результат некоректних числових операцій |
Все інше в JavaScript - truthy.
Приклади falsy
javascript
Boolean(false); // false
Boolean(0); // false
Boolean(''); // false
Boolean(null); // false
Boolean(undefined); // false
Boolean(NaN); // falseПриклади truthy
javascript
Boolean(true); // true
Boolean(1); // true
Boolean('0'); // true (рядок, не порожній)
Boolean('false'); // true (теж рядок)
Boolean([]); // true (порожній масив все одно truthy)
Boolean({}); // true (порожній об'єкт)
Boolean(function(){});// true (функція)Приклад в умові if
javascript
if ('hello') {
console.log('Виконається');
}
if (0) {
console.log('Не виконається');
}Тому що
'hello'-> truthy, а0-> falsy.
Приклад з оператором &&
javascript
console.log(true && 'JS'); // "JS" (обидва truthy)
console.log(false && 'JS'); // false (falsy зупиняє)Приклад з оператором ||
javascript
console.log('' || 'default'); // "default"
console.log('Hi' || 'default'); // "Hi"
||повертає перше truthy значення.
Приклад з подвійним запереченням !!
javascript
!!'text' // true
!!0 // false
!![] // true
!!null // falseВажливо: truthy ≠ "логічно true" у математичному сенсі
JS не "порівнює", а перетворює значення до boolean.
javascript
'false' == true // false
!!'false' // true
'false'- рядок (truthy), але при порівнянні зtrue- інша логіка (спочатку приводяться типи).
Підсумок
| Тип | Приклади | Логічне значення |
|---|---|---|
| Falsy | false, 0, -0, 0n, "", null, undefined, NaN | false |
| Truthy | '0', ' ', 'false', [], {}, function(){} | true |
Коротко
Truthy - "поводиться як
true" Falsy - "поводиться якfalse"
Перевірка:
javascript
if (value) {
// виконується, якщо value truthy
} else {
// якщо value falsy
}Коротка відповідь
Для співбесідиPremium
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.