Pull to refresh

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

Reading time2 min
Views14K
Original author: Natalie Pina

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

Tags:
Hubs:
Total votes 8: ↑3 and ↓5-2
Comments5

Articles