Булевы значения true и false

Булевы значения в JavaScript - это значения true и false. Они нужны для ответов в формате “да” или “нет”, “истина” или “ложь”.

let isStudent = true;
let isAdmin = false;

Переменная isStudent хранит значение true, то есть “да, студент”. Переменная isAdmin хранит false, то есть “нет, не администратор”.

Такие значения часто используются в условиях, проверках, настройках и результатах сравнений.

Что такое boolean

boolean - это логический тип данных. У него всего два возможных значения:

  • true - истина;
  • false - ложь.

Проверим тип через typeof:

console.log(typeof true);
console.log(typeof false);

В консоли будет:

boolean
boolean

То есть true и false - это не строки и не числа, а отдельный тип данных.

true и false

true означает, что утверждение верно.

let isOnline = true;

Такую переменную можно прочитать как: пользователь онлайн.

false означает, что утверждение неверно.

let isBlocked = false;

Такую переменную можно прочитать как: пользователь не заблокирован.

Для булевых переменных часто используют имена, которые начинаются с is, has или can. Это не обязательное правило языка, но так код проще читать.

let isReady = true;
let hasAccess = false;
let canEdit = true;

По таким именам сразу видно, что в переменной ожидается логическое значение.

Булевы значения в переменных

Булевы значения можно записывать в переменные так же, как строки и числа.

let isDarkTheme = false;

console.log(isDarkTheme);

Результат:

false

Значение можно изменить, если переменная создана через let:

let isDarkTheme = false;

isDarkTheme = true;

console.log(isDarkTheme);

В консоли будет:

true

Если значение не должно меняться, можно использовать const:

const isMobile = false;

console.log(isMobile);

Булевы значения из сравнений

Чаще всего true и false появляются как результат сравнения.

console.log(10 > 5);
console.log(10 < 5);

Результат:

true
false

Первое сравнение верное: 10 больше 5, поэтому результат true. Второе неверное: 10 не меньше 5, поэтому результат false.

Результат сравнения можно сохранить в переменную:

let age = 18;
let isAdult = age >= 18;

console.log(isAdult);

В консоли будет:

true

Такой код читается почти как обычная фраза: isAdult хранит ответ на вопрос, является ли возраст взрослым.

Boolean и условия

Булевы значения удобно использовать в условиях. Условие решает, выполнять код или нет.

let isAuth = true;

if (isAuth) {
  console.log('Показываем личный кабинет');
}

Если isAuth равно true, код внутри if выполнится.

Если значение false, код внутри условия пропускается:

let isAuth = false;

if (isAuth) {
  console.log('Показываем личный кабинет');
}

В этом примере сообщение не появится, потому что условие ложное.

Подробно if, else и сравнения мы разберем в отдельных уроках. Сейчас важно увидеть, что true и false часто управляют выполнением кода.

Не путаем boolean со строками

true и ‘true’ - разные значения.

let first = true;
let second = 'true';

console.log(typeof first);
console.log(typeof second);

Результат:

boolean
string

То же самое с false:

let first = false;
let second = 'false';

console.log(typeof first);
console.log(typeof second);

Результат:

boolean
string

Строка ‘false’ - это обычный текст. Она не равна булевому значению false.

Ложные и истинные значения

В JavaScript есть значения, которые в условиях ведут себя как false. Их часто называют ложными.

К таким значениям относятся:

  • false;
  • 0;
  • пустая строка ;
  • null;
  • undefined;
  • NaN.

Остальные значения чаще всего ведут себя как true.

if ('JavaScript') {
  console.log('Строка не пустая');
}

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

Но не нужно сразу пытаться все это выучить наизусть. Мы еще вернемся к этой теме в уроках про условия, логические операторы и функцию Boolean().

Частые ошибки

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

let isAdmin = 'false';

Здесь в переменной лежит строка, а не boolean. Если нужен логический тип, пишем без кавычек:

let isAdmin = false;

Вторая ошибка - писать True или False с большой буквы.

let isReady = True;

В JavaScript правильно писать только так:

let isReady = true;

JavaScript чувствителен к регистру, поэтому true и True - разные вещи.

Третья ошибка - путать результат сравнения и само значение.

let age = 20;

console.log(age >= 18);

В консоли появится true, потому что сравнение верное. Это не строка и не число, а результат проверки.

Четвертая ошибка - думать, что строка ‘false’ ведет себя как false. На самом деле это непустая строка, и в условиях она считается истинным значением.

Что дальше

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

Дальше разберем null и undefined. Эти значения часто встречаются, когда данных пока нет, значение не задано или результат поиска ничего не нашел.