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 === 5 → true |
!== | Строго не равно | 5 !== 3 → true |
> | Больше | 5 > 3 → true |
< | Меньше | 3 < 5 → true |
>= | Больше или равно | 5 >= 5 → true |
<= | Меньше или равно | 3 <= 5 → true |
Строгое 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Приоритет операторов
Порядок выполнения (от высшего к низшему):
- Скобки
() - Инкремент/декремент
++,-- - Унарные
!,- - Степень
** - Умножение, деление
*,/,% - Сложение, вычитание
+,- - Сравнение
<,>,<=,>= - Равенство
===,!== - Логическое И
&& - Логическое ИЛИ
||
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...
Ваш вывод:
Ожидаемый результат:
Аноним
Проверь себя
- Чем
===отличается от==? - Что вернёт
true && false? - Что вернёт
null ?? "default"? - Для чего нужен
?.?