JS Tower
JavaScript & TypeScriptМодуль 1: Базовый синтаксис

Операторы

Арифметические, сравнения и логические операторы

Цель урока

В этом уроке ты научишься:

  • Выполнять математические операции
  • Сравнивать значения
  • Комбинировать условия с помощью логических операторов

Арифметические операторы

Базовые операции

console.log(10 + 5);  // 15 — сложение
console.log(10 - 5);  // 5  — вычитание
console.log(10 * 5);  // 50 — умножение
console.log(10 / 5);  // 2  — деление

Остаток от деления

console.log(10 % 3); // 1 (10 = 3*3 + 1)
console.log(8 % 2);  // 0 (делится без остатка)

// Проверка чётности
let num = 4;
console.log(num % 2 === 0); // true — чётное

Возведение в степень

console.log(2 ** 3);  // 8  (2³)
console.log(3 ** 2);  // 9  (3²)
console.log(4 ** 0.5); // 2  (квадратный корень)

Сокращённые операторы

let x = 10;

x += 5;  // x = x + 5 → 15
x -= 3;  // x = x - 3 → 12
x *= 2;  // x = x * 2 → 24
x /= 4;  // x = x / 4 → 6

console.log(x); // 6

Инкремент и декремент

let count = 5;

count++;  // count = 6
count--;  // count = 5

// Префикс vs постфикс
let a = 5;
console.log(++a); // 6 — сначала увеличить, потом вернуть
console.log(a++); // 6 — сначала вернуть, потом увеличить
console.log(a);   // 7

Операторы сравнения

ОператорЗначениеПример
===Строго равно5 === 5true
!==Строго не равно5 !== 3true
>Больше5 > 3true
<Меньше3 < 5true
>=Больше или равно5 >= 5true
<=Меньше или равно3 <= 5true

Строгое vs нестрогое сравнение

// Строгое (===) — сравнивает тип и значение
console.log(5 === "5");  // false
console.log(5 === 5);    // true

// Нестрогое (==) — приводит типы
console.log(5 == "5");   // true
console.log(0 == false); // true

Используй ===

Всегда используй строгое сравнение === и !==. Нестрогое сравнение == может привести к неожиданным результатам.


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

И (&&)

Оба условия должны быть истинны:

console.log(true && true);   // true
console.log(true && false);  // false
console.log(false && true);  // false
console.log(false && false); // false

let age = 25;
let hasLicense = true;
console.log(age >= 18 && hasLicense); // true

ИЛИ (||)

Хотя бы одно условие истинно:

console.log(true || false);  // true
console.log(false || true);  // true
console.log(false || false); // false

let isWeekend = false;
let isHoliday = true;
console.log(isWeekend || isHoliday); // true

НЕ (!)

Инвертирует значение:

console.log(!true);  // false
console.log(!false); // true

let isLoggedIn = false;
console.log(!isLoggedIn); // true

Приоритет операторов

Порядок выполнения (от высшего к низшему):

  1. Скобки ()
  2. Инкремент/декремент ++, --
  3. Унарные !, -
  4. Степень **
  5. Умножение, деление *, /, %
  6. Сложение, вычитание +, -
  7. Сравнение <, >, <=, >=
  8. Равенство ===, !==
  9. Логическое И &&
  10. Логическое ИЛИ ||
console.log(2 + 3 * 4);     // 14 (сначала 3*4)
console.log((2 + 3) * 4);   // 20 (скобки меняют порядок)
console.log(true || false && false); // true (сначала &&)

Nullish Coalescing (??)

Возвращает правый операнд, если левый null или undefined:

let name = null;
console.log(name ?? "Гость"); // "Гость"

let count = 0;
console.log(count ?? 10); // 0 (0 — не null/undefined)
console.log(count || 10); // 10 (0 — falsy)

Optional Chaining (?.)

Безопасный доступ к свойствам:

let user = {
  name: "Иван",
  address: null
};

// Без optional chaining — ошибка
// console.log(user.address.city); // Error!

// С optional chaining — undefined
console.log(user.address?.city); // undefined
console.log(user.profile?.avatar); // undefined

Итого

КатегорияОператоры
Арифметические+, -, *, /, %, **
Сокращённые+=, -=, *=, /=, ++, --
Сравнения===, !==, >, <, >=, <=
Логические&&, ||, !
Специальные??, ?.

Практика

Задание 1: Арифметика

Задача: Вычисли площадь круга с радиусом 5.

Запустите код для проверки
Loading...
Ваш вывод:
Ожидаемый результат:
78.53981633974483

Задание 2: Сравнение

Задача: Проверь, равны ли строка "10" и число 10 строго и нестрого.

Запустите код для проверки
Loading...
Ваш вывод:
Ожидаемый результат:
false
true

Задание 3: Логические операторы

Задача: Проверь, можно ли получить скидку (возраст < 18 ИЛИ возраст >= 65).

Запустите код для проверки
Loading...
Ваш вывод:
Ожидаемый результат:
true

Задание 4: Nullish Coalescing

Задача: Используй ?? для значения по умолчанию.

Запустите код для проверки
Loading...
Ваш вывод:
Ожидаемый результат:
Аноним

Проверь себя

  1. Чем === отличается от ==?
  2. Что вернёт true && false?
  3. Что вернёт null ?? "default"?
  4. Для чего нужен ?.?