Выражения и операторы
Эта глава описывает все операторы, выражения и ключевые слова языка JavaScript.
Выражения и операторы по категориям
Алфавитный список смотрите в боковой панели слева.
Первичные выражения
Базовые ключевые слова и общие выражения в JavaScript.
this
Ключевое слово
this
ссылается на контекст выполняемой функции.function
Ключевое слово
function
определяет выражение функции.class
Ключевое слово
class
определяет выражение класса.function*
Ключевое слово
function*
(со звёздочкой) определяет функцию-генератор.yield
Пауза или продолжение выполнения функции-генератора.
yield*
Делегирует выполнение другому генератору итерируемому объекту.
- Экспериментальная возможность
async function*
async function
определяет выражение асинхронной функции.- Экспериментальная возможность
await
Пауза и продолжение выполнения асинхронной функции и ожидание Promise (результата выполнения) с результатом разрешено/отклонено.
[]
Синтаксис создания инициализатора/литерала массива.
{}
Синтаксис создания инициализатора/литерала объекта
/ab+c/i
Синтаксис создания литерала регулярного выражения.
( )
Оператор группировки.
Левосторонние выражения
Значения слева являются назначением присваивания.
- Доступ к свойству
Операторы доступа к членам предоставляют доступ к свойству или методу объекта (
object.property
иobject['property']
).new
Оператор
new
создаёт экземпляр объекта с использованием конструктора.- new.target
Свойство
new.target
ссылается на конструктор или функцию, который был вызван через операторnew
.super
Ключевое слово
super
вызывает конструктор родительского класса....obj
Оператор распространения позволяет развернуть выражение в местах, где ожидается несколько аргументов (при вызове функций) или несколько элементов (при создании литералов массива).
Инкремент и декремент
Унарные операторы
Унарные операции — это операции с одним операндом.
delete
Оператор
delete
удаляет свойство из объекта.void
Оператор
void
отбрасывает возвращаемое значение выражения.typeof
Оператор
typeof
определяет тип переданного объекта.+
Оператор унарного плюса преобразует свой операнд в тип
Number
.-
Оператор унарного минуса преобразует свой операнд в тип
Number
, а затем меняет его знак.~
Оператор побитового НЕ.
!
Оператор логического НЕ.
Арифметические операторы
Реляционные операторы
Реляционные операторы (операторы отношения) сравнивают свои операнды и возвращают значение типа Boolean
, зависящее от того, был ли результат сравнения истинным или ложным.
in
Оператор
in
определяет, содержит ли объект указанное свойство.instanceof
Оператор
instanceof
определяет, является ли объект экземпляром потомком Prototype (или экземпляром) другого объекта.<
Оператор меньше.
>
Оператор больше.
<=
Оператор меньше или равно.
>=
Оператор больше или равно.
Примечание: Это не оператор. Это нотация для Стрелочных функций.
Операторы равенства
Операторы побитового сдвига
Бинарные побитовые операторы
Бинарные логические операторы
Условный (тернарный) оператор
(условие ? ifTrue : ifFalse)
Условный оператор возвращает одно значение из двух данных в зависимости от логического значения условия.
Операторы присваивания
Операторы присваивания присваивают значение своему левому операнду, зависящее от значения их правого операнда.
=
Оператор присваивания.
*=
Оператор присваивания с умножением.
/=
Оператор присваивания с делением.
%=
Оператор присваивания с взятием остатка от деления.
+=
Оператор присваивания со сложением.
-=
Оператор присваивания с вычитанием.
<<=
Оператор присваивания со сдвигом влево.
>>=
Оператор присваивания со знаковым сдвигом вправо.
>>>=
Оператор присваивания с беззнаковым сдвигом вправо.
&=
Оператор присваивания с побитовым И.
^=
Оператор присваивания с побитовым ИСКЛЮЧАЮЩИМ ИЛИ.
|=
Оператор присваивания с побитовым ИЛИ.
{a, b} = {a:1, b:2}
[a, b] = [1, 2]
Деструктурирующее присваивание позволяет вам присваивать свойства массива или объекта переменным с использованием синтаксиса, очень похожего на объявление литералов массива или объекта.
Оператор запятая
,
Оператор запятая позволяет вычислять несколько выражений в одном операторе и возвращает результат вычисления последнего выражения.
Нестандартные особенности
- Не стандартноLegacy generator function
Ключевое слово
function
может быть использовано для определения устаревших функций-генераторов в одном выражении. Для того, чтобы сделать такую функцию, её тело должно содержать хотя бы одно выражениеyield
.- Не стандартноExpression closures
Синтаксис закрытого выражения для сокращённого написания простейших функций.
- Не стандартно
[for (x of y) x]
Упрощённый синтаксис создания массива.
- Не стандартно
(for (x of y) y)
Упрощённый синтаксис создания генератора.