Поскольку булевое значение может быть только true или false, преобразование его в число заключается в том, что на выходе мы получим 1 (для значения true) или 0 (для значения false).

Рассмотрим самые популярные способы получения числового значения из логического.

Условный оператор

В зависимости от логического значения, получаем соответствующее число.

// стандартный условный оператор
let boolean1 = true;
if (boolean1) {
  boolean1 = 1;
}  else {
  boolean1 = 0;
}  // boolean1 = 1

// тернарный оператор
let boolean2 = false;
boolean2 = boolean2 ? 1 : 0;  // boolean2 = 0

Number()

Метод Number() преобразует логическое значение в целое число

let boolean = true;
Number(boolean)  // 1

Унарный оператор (+)

Для преобразования булевого значения в числовое, можно воспользоваться унарный оператором - это знак +, который ставится перед элементом.

let boolean = false;
+boolean  // 0

Побитовый оператор & (И)

Побитовый оператор & возвращает 1, если биты каждого операнда равны 1.

let booleanTrue = true;
let convertedBooleanTrue1 = booleanTrue & 1  // 1
let convertedBooleanTrue2 = booleanTrue & 0  // 0

let booleanFalse = false;
let convertedBooleanFalse1 = booleanFalse & 1  // 0
let convertedBooleanFalse2 = booleanFalse & 0  // 0

Побитовый оператор | (ИЛИ)

Побитовый оператор | возвращает 1, если бит как минимум одного операнда равен 1.

let booleanTrue = true;
let convertedBooleanTrue1 = booleanTrue | 1  // 1
let convertedBooleanTrue2 = booleanTrue | 0  // 1

let booleanFalse = false;
let convertedBooleanFalse1 = booleanFalse | 1  // 1
let convertedBooleanFalse2 = booleanFalse | 0  // 0