Elementor Header #8

51. Результат логических выражений

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

Логические операторы

В JavaScript есть три основных логических оператора:

  1. И (AND) (&&) — возвращает true, если оба операнда истинны.
  2. ИЛИ (OR) (||) — возвращает true, если хотя бы один из операндов истинен.
  3. НЕ (NOT) (!) — инвертирует логическое значение.

Результаты выражений с && (AND)

Оператор && возвращает значение первого ложного операнда или значение последнего операнда, если все операнды истинны.

Пример:

				
					console.log(true && false); // false
console.log(true && true);  // true
console.log(1 && 0);        // 0 (первый ложный операнд)
console.log(1 && 2);        // 2 (оба истинны, возвращает последний)

				
			

Результаты выражений с || (OR)

Оператор || возвращает значение первого истинного операнда или значение последнего операнда, если все операнды ложны.

Пример:

				
					console.log(false || true); // true
console.log(false || false); // false
console.log(0 || 2);        // 2 (первый истинный операнд)
console.log(null || "hello"); // "hello" (первый истинный)

				
			

Оператор ! (NOT)

Оператор ! возвращает противоположное логическое значение.

Пример:

				
					console.log(!true);  // false
console.log(!false); // true
console.log(!0);     // true (0 - ложное значение)
console.log(!"");    // true (пустая строка - ложное значение)
console.log(!1);     // false (1 - истинное значение)

				
			

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

В JavaScript есть понятия «ложных» (falsy) и «истинных» (truthy) значений. Ложные значения — это значения, которые приводятся к false в логических контекстах:

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

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

Пример:

				
					if (0) {
    console.log("Это не выполнится");
}

if ("") {
    console.log("И это не выполнится");
}

if ("hello") {
    console.log("Это выполнится");
}

				
			

Использование логических выражений в условиях

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

Пример:

				
					let age = 18;

if (age >= 18 && age < 65) {
    console.log("Вы совершеннолетний");
} else {
    console.log("Вы не подходите по возрасту");
}

				
			

В этом примере оператор && проверяет, находится ли возраст в пределах от 18 до 65 лет включительно.

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

Неправильное использование оператора && или ||

Иногда можно перепутать порядок операндов, что приведёт к неверным результатам.

Ошибка:

				
					let isLoggedIn = false;
let isAdmin = true;

if (isLoggedIn && isAdmin) {
    console.log("Добро пожаловать, администратор!"); 
} else {
    console.log("Доступ запрещён");
}

				
			

Здесь проверка админа (isAdmin) не имеет смысла, если пользователь не залогинен.

Исправление:

				
					if (isLoggedIn && isAdmin) {
    console.log("Добро пожаловать, администратор!");
} else if (isLoggedIn) {
    console.log("Добро пожаловать, пользователь!");
} else {
    console.log("Доступ запрещён");
}

				
			

Забытое отрицание (!)

Отрицание может быть пропущено, что приведёт к неправильной логике.

Ошибка:

				
					let isEmpty = false;

if (isEmpty) {
    console.log("Массив пустой");
} else {
    console.log("Массив содержит элементы");
}

				
			

Здесь логика обратная, так как переменная isEmpty равна false.

Исправление:

				
					if (!isEmpty) {
    console.log("Массив содержит элементы");
} else {
    console.log("Массив пустой");
}

				
			

Ошибочное приведение типов

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

Ошибка:

				
					let value = "0";

if (value == false) {
    console.log("Значение равно false");
}

				
			

Исправление:

Используйте строгое сравнение (===), чтобы избежать приведения типов:

				
					if (value === false) {
    console.log("Значение равно false");
}

				
			

Заключение

Результаты логических выражений в JavaScript играют важную роль в управлении логикой программы. Понимание того, как работают операторы &&, || и !, а также знание разницы между «истинными» и «ложными» значениями, поможет вам писать более надёжный и предсказуемый код.

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

Напишите функцию isBetween, которая принимает три числа: value, min, max. Функция должна возвращать true, если value находится в диапазоне от min до max включительно, и false в противном случае.

				
					function isBetween(value, min, max) {
    return value >= min && value <= max;
}

console.log(isBetween(5, 1, 10)); // true
console.log(isBetween(0, 1, 10)); // false

				
			

Создайте функцию isFalsy, которая принимает значение и возвращает true, если оно ложное, и false, если истинное.

				
					function isFalsy(value) {
    return !value;
}

console.log(isFalsy(0)); // true
console.log(isFalsy(1)); // false

				
			

Напишите функцию isAdult, которая принимает возраст и возвращает true, если возраст больше или равен 18, и false в противном случае.

				
					function isAdult(age) {
    return age >= 18;
}

console.log(isAdult(20)); // true
console.log(isAdult(16)); // false

				
			

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

logo