Elementor Header #8

46. Логический тип

Логический тип данных, или тип boolean, является одним из базовых типов данных в JavaScript. Он используется для представления двух значений: true (истина) и false (ложь). Логический тип широко используется в программировании для управления потоком выполнения программы, выполнения условий, циклов и других конструкций.

Основы логического типа

Логический тип (boolean) имеет всего два возможных значения:

  • true — означает истину.
  • false — означает ложь.

Примеры:

				
					let isJavaScriptFun = true;
let isColdOutside = false;

				
			

Значения true и false могут быть результатом логических выражений, таких как сравнения:

				
					let a = 5;
let b = 10;

let isEqual = (a === b); // false
let isLessThan = (a < b); // true

				
			

Логические выражения и операторы

В JavaScript можно использовать логические операторы для создания сложных условий. Основные логические операторы:

И (AND) — оператор && возвращает true, если оба операнда равны true.

				
					let a = true;
let b = false;

let result = a && b; // false

				
			

ИЛИ (OR) — оператор || возвращает true, если хотя бы один из операндов равен true.

				
					let a = true;
let b = false;

let result = a || b; // true

				
			

НЕ (NOT) — оператор ! возвращает противоположное значение логического выражения.

				
					let a = true;

let result = !a; // false

				
			

Примеры использования

Логический тип данных часто используется в условиях и ветвлениях программы:

				
					let age = 18;

if (age >= 18) {
  console.log("Вы совершеннолетний.");
} else {
  console.log("Вы несовершеннолетний.");
}

				
			

В этом примере выражение age >= 18 является логическим выражением, которое возвращает true, если возраст равен или больше 18, и false в противном случае.

Логический тип также часто используется в циклах:

				
					let age = 18;

if (age >= 18) {
  console.log("Вы совершеннолетний.");
} else {
  console.log("Вы несовершеннолетний.");
}

				
			

В этом примере выражение age >= 18 является логическим выражением, которое возвращает true, если возраст равен или больше 18, и false в противном случае.

Логический тип также часто используется в циклах:

				
					let isRunning = true;

while (isRunning) {
  console.log("Программа выполняется...");
  // Для примера прервём цикл
  isRunning = false;
}

				
			

Преобразование других типов в логический

В JavaScript существует понятие «истинности» (truthy) и «ложности» (falsy) значений. Любое значение может быть преобразовано в логическое с помощью функции Boolean() или оператора !!.

Значения, которые считаются ложными (falsy):

  • false
  • 0
  • "" (пустая строка)
  • null
  • undefined
  • NaN

Все остальные значения считаются истинными (truthy).

Примеры:

				
					console.log(Boolean(0)); // false
console.log(Boolean(1)); // true
console.log(Boolean("")); // false
console.log(Boolean("Hello")); // true
console.log(Boolean(0)); // false
console.log(Boolean(1)); // true
console.log(Boolean("")); // false
console.log(Boolean("Hello")); // true

				
			

Распространённые ошибки

Ошибки в приоритете логических операторов: Важно помнить, что у оператора ! самый высокий приоритет, затем следует &&, и самый низкий приоритет у ||. Это может привести к неожиданным результатам, если не использовать скобки для явного указания порядка операций.

Пример ошибки:

				
					let a = true;
let b = false;
let c = true;

let result = a || b && c; // true, т.к. b && c выполняется первым

				
			

Путаница между присваиванием и сравнением: Использование = вместо == или === может привести к присваиванию значения переменной вместо проверки условия.

Пример ошибки:

				
					let isTrue = true;

if (isTrue = false) {
  console.log("Это не сработает так, как ожидается.");
}

				
			

Смешивание типов данных: В JavaScript допускается сравнение различных типов данных, что может привести к неожиданным результатам.

Пример ошибки:

				
					let result = 0 == false; // true, так как 0 считается falsy

				
			

Заключение

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

Тестовое задание

  1. Напишите программу, которая проверяет, является ли введённое пользователем число положительным, отрицательным или равным нулю. Выведите соответствующее сообщение на экран.
  2. Используйте логические операторы для создания сложного условия, которое будет проверять одновременно несколько параметров, например, возраст пользователя и его страну проживания. Выведите сообщение, если оба условия выполнены.
  3. Напишите функцию isEligibleForDiscount, которая принимает возраст пользователя и его статус подписки (подписан или нет). Функция должна возвращать true, если пользователь имеет право на скидку (например, если его возраст больше 60 лет или он является подписчиком), и false в противном случае.

  4. Задача с подвохом: Чему будет равно выражение true || false && false? Объясните, почему.

  5. Преобразуйте следующие значения в логический тип и объясните, почему они имеют такие результаты:

    • "Hello"
    • 0
    • null
    • [] (пустой массив)
    • {} (пустой объект)
  6. Напишите условие, которое будет проверять, не является ли переменная x ни нулём, ни пустой строкой, ни null, ни undefined. Если условие выполняется, программа должна выводить сообщение «Значение переменной корректное».

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

logo