`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.
false
—false
в булевом типе0
— Число ноль (десятичное0.0
также считается «ложным»)-0
— Отрицательный ноль (технически отличается от0
, но всё равно считается «ложным»)0n
— Ноль в типе BigInt""
— Пустая строка длиной 0null
— Отсутствие значения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
).
true
—true
в булевом типе- Числа (кроме 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-канал.