Операторы в JavaScript: полное руководство

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

Что такое оператор в JavaScript?

Оператор в JavaScript — это встроенная функция. Она скрыта, и вы не можете получить к ней прямой доступ. Однако, внутренне, для каждого оператора существует такая функция. В JavaScript множество операторов: присваивания, сложения (+), удаления (delete), отрицания (!), умножения (*), определения типа (typeof) и другие. Они сгруппированы в категории: арифметические, логические и т.д. В этом обзоре не все операторы будут рассмотрены, но в практических примерах мы обсудим наиболее распространённые.

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

Рассмотрим пример:

let a, b = 10; // Оператор запятой
a = 10; // Оператор присваивания
b = a; // Оператор присваивания
let c = a + b; // Оператор присваивания и сложения
console.log(c); // Выведет 20

Здесь используются несколько операторов:

  • Оператор запятой (,): разделяет выражения. Вместо объявления a и b на разных строках, используется одна.
  • Оператор присваивания (=): присваивает значение переменной.
  • Оператор сложения (+): складывает значения.

Операторы комбинируются в строке кода. В таких случаях важен приоритет операторов. В let c = a + b; сначала складываются a и b, затем результат присваивается c. Оператор сложения (+) имеет больший приоритет, чем присваивания (=). Обычно приоритет интуитивно понятен.

Оператор присваивания: внутреннее устройство

Пример упрощённого представления функции оператора присваивания в движке JavaScript:

function = (variable, expression) {
  // 1. Вычисляем выражение справа
  // 2. Ищем переменную по имени в текущем и внешних scope
  // 3. Присваиваем результат выражения переменной
  // 4. Возвращаем результат выражения
}

Это сильно упрощённая модель. На деле всё сложнее. Функция принимает два параметра: variable (переменная слева от оператора) и expression (выражение справа). Сначала вычисляется выражение справа, затем находится переменная, и ей присваивается результат. Функция возвращает результат выражения. Попытка объявить такую функцию в коде вызовет ошибку, но это помогает понять принцип работы оператора присваивания.

Операторы как функции: пример в консоли

В консоли браузера:

let a;
a = 10; // Возвращает 10
console.log(a); // Выведет 10
a = true; // Возвращает true
console.log(a); // Выведет true
console.log(a = false); // Выведет false, a теперь false

Оператор присваивания, как и функция, возвращает значение. Это важно, например, при использовании в console.log:

console.log(a = false); // Выведет false

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

Что будем искать? Например,программа