Преобразование булевых значений в число: 0 и 1

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Для преобразования булевых значений в числа, используйте унарный оператор + или функцию Number:

JS
Скопировать код
let num = +true;  // 1
num = +false; // 0

num = Number(true);  // 1
num = Number(false);  // 0

Оператор + преобразует true в 1, а false – в 0. Функция Number() действует аналогично.

Кинга Идем в IT: пошаговый план для смены профессии

Различные методы преобразования

Условное преобразование: использование тернарного оператора

Если вы предпочитаете более наглядный подход, вы можете использовать тернарный оператор:

JS
Скопировать код
let myNum = myBool ? 1 : 0;  // быстрое преобразование булевых значений

Переменная myBool содержит булево значение, которое нужно преобразовать: если myBool – истина, myNum получит значение 1, если же ложь – 0.

Сценарий производительности: побитовое ИЛИ для целочисленного результата

Когда важна производительность (например, в asm.js), побитовые операторы могут оказаться полезными:

JS
Скопировать код
let myResult = true | 0;  // 1
myResult = false | 0;  // 0

Оператор | 0 возвращает целое число в результате, что может увеличить скорость выполнения кода в некоторых JavaScript движках.

Забота о входных данных: управление аномалиями

Как ответственные разработчики, мы всегда должны проверять пользовательские данные на стороне сервера для обеспечения безопасности и надёжности. При работе с типами данных следует учитывать возможные нестандартные сценарии и писать код, способный с ними справляться. Так, вы улучшаете надёжность и качество своего кода.

Визуализация

Это можно представить как взвешивание истины:

Markdown
Скопировать код
| Булево значение | Вес истины        |
|-----------------|-------------------|
| `true`          | 🏋️‍♂️: 1 кг       |
| `false`         | 🎈: 0 кг          |

Преобразование булевого значения в число – это словно взвешивание истины на весах:

JS
Скопировать код
const weight = +true;  // 🏋️‍♂️: Истина весит 1 кг!
const balloon = +false;  // 🎈: Ложь не имеет веса!

+ – это ваш надёжный помощник, который облегчает решение задач и поддержание порядка в коде.

Крайние случаи: будьте готовы к неожиданностям

Null и undefined

Что, если булево значение принимает форму null или undefined?

JS
Скопировать код
+null;  // 0 (Null на самом деле означает ноль)
+undefined;  // NaN (Undefined выдает NaN!)

Это следствие слабой типизации в JavaScript, поэтому всегда обращайте внимание на возможные подводные камни.

Принуждение типов в действии: истина и ложь

Когда речь заходит о принуждении типов, помните, что JavaScript имеет свои правила определения того, что является истиной, а что ложью:

JS
Скопировать код
+!!'непустая строка';  // 1 (непустые строки считаются истиной)
+!!'';  // 0 (пустые строки – это ложь)

Понимание того, как JavaScript определяет истинные и ложные значения, поможет избежать ошибок, связанных с неявными преобразованиями типов.

Присваивание и использование результата преобразования

При присваивании результата преобразования или его использовании в вычислениях, старайтесь поддерживать код в чистоте:

JS
Скопировать код
let isActiveNumeric = +isActive;
let itemQuantity = isActiveNumeric * someItem;

Сначала проводится преобразование переменной isActive, а затем полученное значение используется в последующих расчетах. Это улучшает читаемость и удобство поддержки кода.

Полезные материалы

  1. Преобразование типов – MDN Web Docs Glossary – Более глубокое изучение принуждения типов в JavaScript.
  2. Как преобразовать строку в число в JavaScript – Stack Overflow – Обсуждение методов преобразования строк в числа на Stack Overflow.
  3. Преобразования типов – JavaScript.info – Детальный курс об преобразовании типов в JavaScript.
  4. Преобразование булевого значения в число – Stack Overflow – Обсуждение преобразования булевых значений в число в JavaScript на Stack Overflow.
  5. JavaScript: Обзор языка – Обзор типов данных в JavaScript от Дугласа Крокфорда.