Приведение значений к Boolean в JavaScript

от автора

Логическое (или булевое) значение — это примитивный тип данных, который может содержать в себе 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/