Вирази та оператори

Ця глава документує усі оператори, вирази та ключові слова мови JavaScript.

Вирази та оператори за категоріями

Список у алфавітному порядку дивіться на бічній панелі ліворуч.

Первинні вирази

Базові ключові слова та загальні вирази у JavaScript.

this
Ключове слово this посилається на особливу властивість контексту виконання функції.
function
Ключове слово function визначає функціональний вираз.
class
Ключове слово class визначає вираз класу.
function*
Ключове слово function* визначає вираз функції-генератора.
yield
Призупиняє та відновлює виконання функції-генератора.
yield*
Делегує до іншої функції-генератора або ітерабельного об'єкта.
async function*
async function визначає вираз async-функції.
await
Призупиняє та відновлює виконання async-функції та чекає на вирішення/відхилення проміса.
[]
Синтаксис масивного ініціалізатора/літералу.
{}
Синтаксис об'єктного ініціалізатора/літералу.
/ab+c/i
Літерал регулярного виразу.
( )
Оператор групування.

Лівосторонні вирази

Значення зліва є призначенням присвоєння.

Доступ до властивостей
Оператори доступу надають доступ до властивості або методу об'єкта
(object.property та object["property"]).
new
Оператор new створює екземпляр конструктора.
new.target
У конструкторах new.target посилається на конструктор, викликаний оператором new.
super
Ключове слово super викликає батьківський конструктор.
...obj
Оператор розкладу дозволяє розкласти вираз там, де очікується більше одного аргументу (для викликів функцій) або більше одного елемента (для масивних літералів).

Інкремент та декремент

Постфіксний/префіксний оператор інкременту та постфіксний/префіксний оператор декременту.

A++
Постфіксний оператор інкременту.
A--
Постфіксний оператор декременту.
++A
Префіксний оператор інкременту.
--A
Префіксний оператор декременту.

Унарні оператори

Унарна операція - це операція лише з одним операндом.

delete
Оператор delete видаляє властивість об'єкта.
void
Оператор void відкидає повернене значення виразу.
typeof
Оператор typeof визначає тип наданого об'єкта.
+
Унарний плюс перетворює свій операнд на число.
-
Унарний мінус перетворює свій операнд на число та міняє його знак на протилежний.
~
Оператор побітового НЕ.
!
Оператор логічного НЕ.

Арифметичні оператори

Арифметичні оператори приймають числові значення (або літерали, або змінні) в якості операндів та повертають єдине числове значення.

+
Оператор додавання.
-
Оператор віднімання.
/
Оператор ділення.
*
Оператор множення.
%
Оператор остачі.
**
Оператор піднесення до степеня.

Оператори відношення

Оператор порівняння порівнює свої операнди та повертає значення Boolean на підставі того, чи дорівнює порівняння true.

in
Оператор in визначає, чи має об'єкт надану властивість.
instanceof
Оператор instanceof визначає, чи є об'єкт екземпляром іншого об'єкта.
<
Оператор менше ніж.
>
Оператор більше ніж.
<=
Оператор менше чи дорівнює.
>=
Оператор більше чи дорівнює.

Заувага: => не оператор, а позначення для стрілкових функцій.

Оператори рівності

Результатом обчислення оператора рівності завжди є значення типу Boolean, на підставі того, чи дорівнює порівняння true.

==
Оператор рівності.
!=
Оператор нерівності.
===
Оператор ідентичності.
!==
Оператор неідентичності.

Оператори бітового зсуву

Операції, що зсувають усі біти операнду.

<<
Оператор лівого зсуву.
>>
Оператор правого зсуву.
>>>
Оператор беззнакового правого зсуву.

Побітові логічні оператори

Бітові оператори опрацьовують свої операнди як послідовність 32-х бітів (нулів та одиниць) та повертають стандартні числові значення JavaScript.

&
Побітове І.
|
Побітове АБО.
^
Виключне побітове АБО.

Логічні оператори

Логічні оператори зазвичай застосовуються до булевих (логічних) значень, і, в цьому випадку, вони повертають булеве значення.

&&
Логічне І.
||
Логічне АБО.

Умовний (тернарний) оператор

(condition ? ifTrue : ifFalse)

Умовний оператор повертає одне з двох значень, на підставі логічного значення умови.

Оператори присвоєння

Оператор присвоєння присвоює значення своєму лівому операнду на підставі значення свого правого операнду.

=
Оператор присвоєння.
*=
Присвоєння з множенням.
/=
Присвоєння з діленням.
%=
Присвоєння остачі.
+=
Присвоєння з додаванням.
-=
Присвоєння з відніманням.
<<=
Присвоєння з лівим зсувом.
>>=
Присвоєння з правим зсувом.
>>>=
Присвоєння з беззнаковим правим зсувом.
&=
Присвоєння з побітовим І.
^=
Присвоєння з виключним побітовим АБО.
|=
Присвоєння з побітовим АБО.
[a, b] = [1, 2]
{a, b} = {a:1, b:2}

Деструктуризаційне присвоєння дозволяє присвоювати властивості масиву або об'єкта змінним, використовуючи синтаксис, схожий на масивні або об'єктні літерали.

Оператор кома

,
Оператор кома дозволяє обчислення кількох виразів у єдиній інструкції та повертає результат останнього виразу.

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

Специфікація
ECMAScript (ECMA-262)
The definition of 'ECMAScript Language: Expressions' in that specification.

Див. також