Skip to main content

Truthy/falsy значення

Визначення

У JavaScript будь-яке значення можна привести до логічного типу (boolean).

  • Якщо після приведення воно стає true -> це truthy значення.
  • Якщо стає false -> це falsy значення.

Перевірити легко:

javascript
Boolean(value) // поверне true або false !!value // короткий еквівалент

Список усіх falsy значень (всього 8)

ЗначенняОпис
falseхиба
0число нуль
-0від'ємний нуль
0nBigInt нуль
""порожній рядок
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 - інша логіка (спочатку приводяться типи).


Підсумок

ТипПрикладиЛогічне значення
Falsyfalse, 0, -0, 0n, "", null, undefined, NaNfalse
Truthy'0', ' ', 'false', [], {}, function(){}true

Коротко

Truthy - "поводиться як true" Falsy - "поводиться як false"


Перевірка:

javascript
if (value) { // виконується, якщо value truthy } else { // якщо value falsy }

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.