`truthy` и `falsy` в JavaScript

`truthy` и `falsy` в JavaScript

В этой статье объясняются понятия truthy и falsy в JavaScript.

YouTube Video

truthy и falsy в JavaScript

Концепции truthy и falsy в JavaScript играют очень важную роль, особенно при оценке условных выражений. Truthy и falsy определяют, оценивается ли значение как истинное (true) или ложное (false), но эти значения не обязательно являются булевыми true или false сами по себе.

Ложные значения (Falsy)

Ложные значения (Falsy) — это значения, которые оцениваются как false в условных выражениях JavaScript. Ниже приведен список ложных (falsy) значений в JavaScript.

 1const values = [
 2    false,
 3    0,
 4    -0,
 5    0.0,
 6    -0.0,
 7    0n,
 8    -0n,
 9    "",
10    null,
11    undefined,
12    NaN
13];
14
15for (let value of values) {
16    if (value) {
17        console.log(`${value} is truthy`);
18    } else {
19        console.log(`${value} is falsy`);
20    }
21}

В этом примере все ложные (falsy) значения будут выведены как "falsy". Ниже приведен список ложных (falsy) значений в JavaScript.

  • falsefalse в булевом типе
  • 0 — Число ноль (десятичное 0.0 также считается «ложным»)
  • -0 — Отрицательный ноль (технически отличается от 0, но всё равно считается «ложным»)
  • 0n — Ноль в типе BigInt
  • "" — Пустая строка длиной 0
  • null — Отсутствие значения
  • undefined — Неопределенное значение
  • NaN — Не число (Not a Number)

Эти значения рассматриваются как false в логических операциях и условных операторах (например, в операторах if).

Истинные значения (Truthy)

Все значения, которые не являются falsy, считаются truthy. Это относится к значениям, которые оцениваются как булевое true. В JavaScript многие значения считаются truthy.

 1const values = [
 2    true,
 3    1,
 4    -1,
 5    "Hello",
 6    " ",
 7    [],
 8    {},
 9    function() {},
10    Symbol(),
11    Infinity
12];
13
14for (let value of values) {
15    if (value) {
16        console.log(value, ' is truthy');
17    } else {
18        console.log(value, ' is falsy');
19    }
20}

В этом коде значения truthy выводятся как "truthy". Например, следующие значения являются «правдивыми» (truthy).

  • truetrue в булевом типе
  • Числа (кроме 0) — Например, 1 и -1 также являются истинными.
  • Строки (непустые) — например, "Hello" или " " (даже строки, содержащие только пробелы, являются «правдивыми» (truthy))
  • Объекты — Даже пустые объекты ({}) и массивы ([]) являются истинными.
  • Функции — Сами функции также являются истинными.
  • Symbol — значения типа Symbol также являются «правдивыми» (truthy).
  • Infinity — Как положительная, так и отрицательная бесконечность являются истинными.

Применение понятий truthy и falsy

Понятия truthy и falsy часто используются в условных выражениях и логических операциях. Например, при установке значения по умолчанию с использованием оператора || (логическое ИЛИ), возвращается первое значение truthy.

Как проверить значения falsy

Для проверки значений falsy удобно использовать функцию Boolean. Функция Boolean явно преобразует заданное значение в логический тип.

Примеры использования функции Boolean

 1const values = [
 2    false,
 3    0,
 4    "",
 5    null,
 6    undefined,
 7    NaN
 8];
 9
10for (let value of values) {
11    console.log(`${value} is ${Boolean(value) ? 'truthy' : 'falsy'}`);
12}

Заключение

Truthy и falsy в JavaScript важны для понимания того, как нелогические значения оцениваются в условных выражениях. Falsy значения включают: false, 0, пустую строку, null, undefined и NaN, в то время как все остальные значения оцениваются как truthy. Понимание этих понятий позволяет писать более гибкий и эффективный код.

Вы можете следовать этой статье, используя Visual Studio Code на нашем YouTube-канале. Пожалуйста, также посмотрите наш YouTube-канал.

YouTube Video