
Логическое (или булевое) значение — это примитивный тип данных, который может содержать в себе true или false (истина или ложь). JavaScript использует приведение типа, чтобы привести значение к true\false. Есть явные и скрытые методы преобразования значений в их логические аналоги.
В этой статье мы поговорим о «истинных» и «ложных» значениях, а также о том, как преобразовать обычные значения в логические в JavaScript.
Шпаргалка по “инстинным” и “ложным” значениям в JavaScript
Boolean(false); // false Boolean(undefined); // false Boolean(null); // false Boolean(''); // false Boolean(NaN); // false Boolean(0); // false Boolean(-0); // false Boolean(0n); // false Boolean(true); // true Boolean('hi'); // true Boolean(1); // true Boolean([]); // true Boolean([0]); // true Boolean([1]); // true Boolean({}); // true Boolean({ a: 1 }); // true
Эта шпаргалка — отличная иллюстрация того, какие значение в JavaScript конвертируются как “истинные” или “ложные”.
Выше мы говорили про разницу между явным и скрытым приведением, давайте посмотрим на разницу между ними.
Скрытое приведение инициируется движком JavaScript и происходит автоматически. Явное же приведение наоборот — происходит в “ручном режиме” с использованием встроенных способов JavaScript — оператора !! и функции Boolean().
Оператор !!
!!value
Думаю, вы уже знакомы с логическим оператором «НЕ” — !. Так вот оператор !! действует следующим образом: первый знак ! приводит значение к логическому и инвертирует его. Например, !true равняется false. Второй оператор ! снова инвертирует полученное значение. В нашем примере !false приравнивается к true.
В целом, лучше исопльзовать этот способ, так как у него лучше производительность. Единственное “но” при его использовании — низкая читабельность такого кода. Однако эта проблема возникает только в том случае, если другие разработчики не знакомы с тем, как работает этот оператор.
const value = 'Строчка истины' !!value // true
Рассмотрим процесс поподробнее:
const value = 'Строчка истины' !value // false !!value // true
Ниже — примеры работы оператора !! со значениями из нашей шпаргалки:
// Ложные значения !!'' // false !!false // false !!null // false !!undefined // false !!0 // false !!NaN // false // Истинные значения !![] // true !!"false" // true !!true // true !!1 // true !!{} // true
Функция Boolean()
Boolean(value)
Boolean() — это глобальная функция, которая конвертирует значение, переданное в него, в логическое.
Не стоит использовать его с ключевым словом new (new Boolean), т.к. это создает сущность Boolean, которая является объектом. Ниже — пример правильного использования этой функции:
const value = 'Строчка правды' Boolean(value) //true
Если кратко
В JavaScript есть два явных способа приведения значения к логическому.
1. !!
!!value
2. Boolean()
Boolean(value)
const finalThoughts = "Спасибо за прочтению! Надеюсь кому-то это будет полезно." !!finalThoughts // true Boolean(finalThoughts) // true
ссылка на оригинал статьи https://habr.com/ru/post/667662/
Добавить комментарий