В JavaScript значения могут быть классифицированы как «ложные» или «истинные». Ложные значения — это значения, которые считаются эквивалентными false
при использовании в логическом контексте, а истинные значения — это значения, которые считаются эквивалентными true
. Понимание концепции ложных и истинных значений необходимо для написания эффективного и правильного кода JavaScript. В этой статье мы рассмотрим различные ложные и истинные значения в JavaScript и то, как их можно использовать в условных операторах, циклах и других управляющих структурах. Мы также покажем вам, как использовать встроенную логическую функцию для явного преобразования значения в логическое значение, а также покажем некоторые распространенные ловушки, которых следует избегать при работе с ложными и истинными значениями.
Это лишь одна из множества статей об ИТ. Мы разбиваем сложные темы на небольшие и удобоваримые для вас содержания. Не стесняйтесь подписаться или поддержать pandaquests, чтобы получить больше интересного контента о JavaScript, веб-разработке и разработке программного обеспечения. Мы стараемся публиковаться несколько раз в неделю. Не пропустите ни одного из наших замечательных материалов.
В JavaScript значение считается «ложным», если оно оценивается как ложное при использовании в логическом контексте. И наоборот, значение считается «истинным», если оно оценивается как истинное при использовании в логическом контексте. Ложными считаются следующие значения:
false
0
(ноль)""
(пустая строка)null
undefined
NaN
(Не число)
Итак, если вы поместите эти значения в логический конструктор, вы получите false
:
console.log(Boolean(false)); // false console.log(Boolean(0)); // false console.log(Boolean("")); // false console.log(Boolean(undefined)); // false // ...and so on...
Все остальные значения, включая все объекты и непустые строки, считаются истинными.
Например:
console.log(Boolean(true)); // true console.log(Boolean(1)); // true console.log(Boolean({})); // true // ...and so on...
Концепция ложных и истинных значений существует в JavaScript, потому что позволяет писать более лаконичный код. В JavaScript, если значение используется в логическом контексте (например, в операторе if
, в конструкторе _11 или дважды инвертируется с помощью !!
), оно будет оцениваться как true
или false
. Концепция ложных и истинных значений позволяет разработчикам использовать значения, отличные от просто true
и false
в логических контекстах.
Например, вместо того, чтобы писать:
if (x === true) { // do something }
Ты можешь написать:
if (x) { // do something }
Преимущества использования ложных и истинных значений включают в себя:
- Краткость: благодаря отсутствию необходимости явно сравнивать значения с
true
илиfalse
код становится короче и читабельнее. - Гибкость: при использовании любого значения в логическом контексте код становится более гибким и может работать с более широким диапазоном входных данных.
- Функциональное программирование: поскольку все объекты являются истинными, эта функция также полезна в функциональном программировании, где можно использовать функцию, которая возвращает объекты, а не возвращает логическое значение.
Многие языки программирования имеют схожие понятия с ложными и истинными значениями в JavaScript, хотя конкретные значения, которые считаются ложными или истинными, могут различаться.
Например, в Python любой объект с «истинным значением» True
считается истинным, а любой объект с «истинным значением» False
считается ложным. В Python следующие значения считаются ложными:
False
None
0
(целое число)0.0
(с плавающей запятой)[]
(пустой список)""
(пустая строка)set()
(пустой набор)- …и так далее…
Другие языки, такие как C# и Ruby, также имеют аналогичные концепции.
В C# следующие значения считаются ложными:
false
- 0
0.0
null
""
(пустая строка)
В Ruby следующие значения считаются ложными:
false
nil
Если вы исходите из любого из этих языков, например. Python, вас может удивить, что пустой объект {}
или пустой массив []
считаются в JavaScript истинными, а не ложными. Некоторые, даже опытные разработчики JavaScript, забывают, что число 0 — ложное значение:
[2,1,0].forEach(n => { if (n) { console.log("this is truthy: ", n); } else { console.log("but this is truthy: ", n); } }); // this is truthy: 2 // this is truthy: 1 // but this is falsy: 0
Итак, важно ознакомиться с конкретным синтаксисом JavaScript и явно проверить их значения.
Вот оно. Надеемся, вам понравилась эта статья. Есть вопросы? Дайте нам знать и прокомментируйте ниже.
Мы публикуем несколько статей в неделю. Мы разбиваем сложные темы на небольшие и удобоваримые для вас материалы. Чтобы не пропустить ни одного из них, следите и подписывайтесь на pandaquests. Если вы хотите поддержать нас напрямую, вы можете либо дать чаевые, либо подать заявку на членство по этой ссылке. Используя эту ссылку, 50% вашего вознаграждения перейдет непосредственно к нам. Только благодаря вашей щедрой поддержке мы сможем сохранить частые и качественные наши статьи. Заранее спасибо и удачного кодирования!
Дополнительные материалы на PlainEnglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter, LinkedIn, YouTube и Discord .
Заинтересованы в масштабировании запуска вашего программного обеспечения? Ознакомьтесь с разделом Схема.