В JavaScript вещи могут быть истинными или ложными, но они также могут быть истинными или ложными. Давайте посмотрим, как это работает.

В JavaScript вещи могут быть true или false, но они также могут быть truthy или falsy. Понятия truthy и falsy обычно рассматриваются только в логическом контексте, например, в операторе if..else, но они также влияют на другие части JavaScript — например, на то, что возвращается логическим оператором ИЛИ.

Что означают правда и ложь в JavaScript?

Что-то считается falsy в JavaScript, если оно может быть преобразовано в false. Точно так же нечто является truthy просто, если оно не считается falsy. Хотя falsy может показаться расплывчатым утверждением, на самом деле у него есть конкретное определение. Следующие значения считаются falsy:

  • false
  • 0 or -0 or 0n
  • любая пустая строка, т.е. ""
  • null
  • undefined
  • NaN

Точно так же все, что не равно им, считается truthy, например:

  • любой объект, например {} или [].
  • любое ненулевое число.
  • любая непустая строка.
  • любое значение, отличное от null, undefined или NaN.

Использование правдивых и ложных

Значения truthy и falsy имеют значение в логике JavaScript. Например, все, что может быть преобразовано в truthy в логической настройке (такой как if..else), преобразуется в true, и то же самое касается операторов falsy.

Например, следующая инструкция if — это true просто потому, что "1" — это инструкция truthy:

if("1") {
    console.log('ok');
}

Если бы оператор вместо этого сказал if(0), он вернул бы false, так как 0 это falsy. По мере того, как вы будете знакомиться с JavaScript, вы везде найдете ссылки на truthy и falsy, так что хорошо бы ознакомиться с этой концепцией прямо сейчас.

Дополнительные материалы на PlainEnglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter и LinkedIn. Посетите наш Community Discord и присоединитесь к нашему Коллективу талантов.