Операторы
Операторы
Технический фундамент операторной модели
Оператор в JavaScript — это формальное правило преобразования операндов в результат:
- тип операндов влияет на семантику операции;
- один символ (
+,=,===) может полностью менять поведение выражения; - сложные решения почти всегда строятся из комбинации нескольких операторов;
- читаемая декомпозиция выражений снижает риск логических дефектов.
Эта база нужна, чтобы использовать операторы как инженерный инструмент, а не как набор символов.
Почему операторы это база любого кода
Операторы в JavaScript - это инструменты, которые выполняют действия над значениями: считают, сравнивают, присваивают, проверяют условия. Без них переменные были бы просто "контейнерами", а логика программы не двигалась бы дальше.
Ключевой момент: оператор определяет, как именно JavaScript преобразует входные данные в новый результат.
Проверь себя: почему одна и та же пара значений может дать разный итог при +, === и &&?
Что считается оператором
К базовым группам относятся:
- арифметические (
+,-,*,/); - присваивания (
=,+=,-=); - сравнения (
>,<,===); - логические (
&&,||,!); - типовые (
typeof,instanceof).
const price = 100;
const discount = 20;
const finalPrice = price - discount; // арифметический
const isCheap = finalPrice < 90; // сравнение
Смотри, что важно: операторы часто работают вместе в одном выражении.
Операторы и выражения
Оператор почти всегда участвует в выражении - конструкции, которая вычисляется в значение.
const result = (10 + 5) * 2;
Здесь + и * объединены в одно выражение. Итог зависит от порядка вычисления (приоритета), который ты разберешь в следующих уроках.
Унарные, бинарные и тернарные
- унарный оператор работает с одним операндом (
!isActive); - бинарный - с двумя (
a + b); - тернарный - с тремя частями (
condition ? a : b).
const isAuth = false;
const label = !isAuth ? 'Гость' : 'Пользователь';
Здесь часто путаются: тернарный оператор компактный, но при сложных условиях его легко сделать нечитаемым.
Проверь себя: когда лучше использовать if/else, а когда тернарный оператор?
Мини-сценарий: статус шага обучения
const score = 72;
const hasAttempt = true;
const status = hasAttempt && score >= 70 ? 'passed' : 'retry';
console.log(status);
В одном примере работают сразу несколько операторов:
&&объединяет условия;>=сравнивает балл;?:выбирает строковый результат.
Это типичный прикладной код: небольшое выражение, но важное бизнес-решение.
Смотри, что важно: логические операторы && и || делают короткое замыкание (short-circuit) и возвращают не всегда true/false, а одно из значений.
console.log('ok' && 123); // 123
console.log(0 && 123); // 0
console.log('' || 'default'); // 'default'
console.log('ok' || 'default'); // 'ok'
Поэтому, если тебе нужен именно boolean, делай явные сравнения или приведение:
const hasPassed = hasAttempt && score >= 70;
const status2 = hasPassed ? 'passed' : 'retry';
console.log(status2);
Частые ошибки новичков
- Путать присваивание
=и сравнение===. - Делать выражения слишком длинными и терять читаемость.
- Не учитывать приоритет операторов.
- Полагаться на неявные преобразования типов.
Анти-провал: если выражение сложно читать с первого раза, разбей его на 2-3 промежуточные переменные.
Что будет, если изменить входные данные
В примере со статусом:
score = 72,hasAttempt = true->passed;score = 60,hasAttempt = true->retry;hasAttempt = false-> всегдаretry.
Это показывает, как операторы напрямую управляют результатом бизнес-логики.
Проверь себя: почему полезно отдельно логировать промежуточные проверки (hasAttempt, score >= 70)?
Краткий итог
- Операторы задают действия над данными и лежат в основе каждого выражения.
- В JS есть несколько групп операторов, и каждая решает свой тип задач.
- Один реальный сценарий часто комбинирует сразу 2-3 вида операторов.
- Большинство новичковых багов связано с путаницей операторов и приоритета.
- Осознанная работа с операторами делает код предсказуемым и проще для отладки.