В 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
Эти примеры демонстрируют, что операторы являются функциями и ведут себя подобно функциям. В практической части мы рассмотрим наиболее часто используемые операторы.