В 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 .

Заинтересованы в масштабировании запуска вашего программного обеспечения? Ознакомьтесь с разделом Схема.