Поскольку булевое значение может быть только 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