This page was translated from English by the community. Learn more and join the MDN Web Docs community.

View in English Always switch to English

Выражения и операторы

Эта глава описывает все операторы, выражения и ключевые слова языка 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

Оператор распространения позволяет развернуть выражение в местах, где ожидается несколько аргументов (при вызове функций) или несколько элементов (при создании литералов массива).

Инкремент и декремент

Операторы постфиксного/префиксного инкремента и декремента.

A++

Оператор постфиксного инкремента.

A--

Оператор постфиксного декремента.

++A

Оператор префиксного инкремента. (Значение переменной, сначала, увеличивается на 1, а затем используется в выражении)

--A

Оператор префиксного декремента.

Унарные операторы

Унарные операции — это операции с одним операндом.

delete

Оператор delete удаляет свойство из объекта.

void

Оператор void отбрасывает возвращаемое значение выражения.

typeof

Оператор typeof определяет тип переданного объекта.

+

Оператор унарного плюса преобразует свой операнд в тип Number.

-

Оператор унарного минуса преобразует свой операнд в тип Number, а затем меняет его знак.

~

Оператор побитового НЕ.

!

Оператор логического НЕ.

Арифметические операторы

Арифметические операторы своими операндами принимают числовые значения (литералы или переменные) и возвращают одно числовое значение.

+

Оператор сложения.

-

Оператор вычитания.

/

Оператор деления.

*

Оператор умножения.

%

Оператор взятия остатка от деления.

**

Оператор возведения в степень.

Реляционные операторы

Реляционные операторы (операторы отношения) сравнивают свои операнды и возвращают значение типа Boolean, зависящее от того, был ли результат сравнения истинным или ложным.

in

Оператор in определяет, содер��ит ли объект указанное свойство.

instanceof

Оператор instanceof определяет, является ли объект экземпляром потомком Prototype (или экземпляром) другого объекта.

<

Оператор меньше.

>

Оператор больше.

<=

Оператор меньше или равно.

>=

Оператор больше или равно.

Примечание: Это не оператор. Это нотация для Стрелочных функций.

Операторы равенства

Результат вычисления оператора равенства всегда имеет тип Boolean и значение, зависящее от того, был ли результат проверки истинным или ложным.

==

Оператор проверки на равенство.

!=

Оператор проверки на неравенство.

===

Оператор проверки на идентичность.

!==

Оператор проверки на неидентичность.

Операторы побитового сдвига

Операции для сдвига всех битов операнда.

<<

Оператор побитового сдвига влево.

>>

Оператор знакового побитового сдвига вправо.

>>>

Оператор беззнакового побитового сдвига вправо.

Бинарные побитовые операторы

Побитовые операторы трактуют свои операнды как набор из 32 битов (нулей и единиц) и возвращают стандартные числовые значения JavaScript.

&

Оператор побитового И.

|

Оператор побитового ИЛИ.

^

Оператор побитового ИСКЛЮЧАЮЩЕГО ИЛИ.

Бинарные логические операторы

Логические операторы обычно используются вместе с булевыми (логическими) значениями и в сочетании с ними они возвращают булево значение.

&&

Оператор логического И.

||

Оператор логического ИЛИ.

Условный (тернарный) оператор

(условие ? 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)

Упрощённый синтаксис создания генератора.

Спецификации

Specification
ECMAScript® 2027 Language Specification
# sec-relational-operators
ECMAScript® 2027 Language Specification
# sec-super-keyword
ECMAScript® 2027 Language Specification
# sec-this-keyword
ECMAScript® 2027 Language Specification
# sec-multiplicative-operators
ECMAScript® 2027 Language Specification
# sec-conditional-operator
ECMAScript® 2027 Language Specification
# sec-import-calls
ECMAScript® 2027 Language Specification
# prod-YieldExpression
ECMAScript® 2027 Language Specification
# prod-LogicalORExpression
ECMAScript® 2027 Language Specification
# sec-assignment-operators
ECMAScript® 2027 Language Specification
# sec-async-generator-function-definitions
ECMAScript® 2027 Language Specification
# sec-generator-function-definitions
ECMAScript® 2027 Language Specification
# sec-addition-operator-plus
ECMAScript® 2027 Language Specification
# sec-property-accessors
ECMAScript® 2027 Language Specification
# prod-PropertyDefinition
ECMAScript® 2027 Language Specification
# sec-destructuring-assignment
ECMAScript® 2027 Language Specification
# prod-SpreadElement
ECMAScript® 2027 Language Specification
# prod-ArgumentList
ECMAScript® 2027 Language Specification
# sec-left-shift-operator
ECMAScript® 2027 Language Specification
# sec-destructuring-binding-patterns
ECMAScript® 2027 Language Specification
# sec-null-value
ECMAScript® 2027 Language Specification
# prod-ComputedPropertyName
ECMAScript® 2027 Language Specification
# sec-typeof-operator
ECMAScript® 2027 Language Specification
# sec-subtraction-operator-minus
ECMAScript® 2027 Language Specification
# prod-MethodDefinition
ECMAScript® 2027 Language Specification
# sec-new-operator
ECMAScript® 2027 Language Specification
# sec-object-initializer
ECMAScript® 2027 Language Specification
# sec-function-definitions
ECMAScript® 2027 Language Specification
# prod-FormalParameters
ECMAScript® 2027 Language Specification
# sec-bitwise-not-operator
ECMAScript® 2027 Language Specification
# sec-equality-operators
ECMAScript® 2027 Language Specification
# sec-exp-operator
ECMAScript® 2027 Language Specification
# sec-postfix-decrement-operator
ECMAScript® 2027 Language Specification
# sec-async-function-definitions
ECMAScript® 2027 Language Specification
# prod-BitwiseXORExpression
ECMAScript® 2027 Language Specification
# sec-unary-plus-operator
ECMAScript® 2027 Language Specification
# prod-LogicalANDExpression
ECMAScript® 2027 Language Specification
# sec-postfix-increment-operator
ECMAScript® 2027 Language Specification
# sec-built-in-function-objects
ECMAScript® 2027 Language Specification
# sec-comma-operator
ECMAScript® 2027 Language Specification
# prod-OptionalExpression
ECMAScript® 2027 Language Specification
# sec-class-definitions
ECMAScript® 2027 Language Specification
# sec-unary-minus-operator
ECMAScript® 2027 Language Specification
# prod-AssignmentRestProperty
ECMAScript® 2027 Language Specification
# sec-grouping-operator
ECMAScript® 2027 Language Specification
# prod-BitwiseANDExpression
ECMAScript® 2027 Language Specification
# sec-unsigned-right-shift-operator
ECMAScript® 2027 Language Specification
# sec-signed-right-shift-operator
ECMAScript® 2027 Language Specification
# prod-CoalesceExpression
ECMAScript® 2027 Language Specification
# sec-delete-operator
ECMAScript® 2027 Language Specification
# sec-logical-not-operator
ECMAScript® 2027 Language Specification
# prod-AssignmentRestElement
ECMAScript® 2027 Language Specification
# prod-BitwiseORExpression
ECMAScript® 2027 Language Specification
# sec-generator-function-definitions-runtime-semantics-evaluation
ECMAScript® 2027 Language Specification
# prod-ImportMeta
ECMAScript® 2027 Language Specification
# sec-void-operator
HTML
# import-meta-resolve
HTML
# integration-with-the-javascript-module-system

Смотрите также