Приоритет операторов js: Приоритеты операторов | Конспект JS-course

Приоритеты операторов | Конспект JS-course

Источник: https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Operators/Operator_Precedence

Основная информация

Приоритет операторов определяет порядок, в котором операторы выполняются. Операторы с более высоким приоритетом выполняются первыми.

Пример:

3 + 4 * 5 // возвращает 23

Оператор умножения * имеет более высокий приоритет, чем оператор сложения + и, таким образом будет выполняться первым.

Ассоциативность

Ассоциативность определяет порядок, в котором операторы с одинаковым приоритетом обрабатываются. Например, рассмотрим выражение:

a OP b OP c

Левая ассоциативность (left-to-right) означает, что оно обрабатывается как (a OP b) OP c, в то время как правая ассоциативность (right-to-left) означает, что оно интерпретируется как a OP (b OP c). Операторы присваивания являются право-ассоциативными, так что Вы можете написать:

a = b = 5;

с ожидаемым результатом, что

a и b будут равны 5. Это происходит, потому что оператор присваивания возвращает тот результат, который присваивает. Сначала b становится равным 5, затем a принимает значение b.

Данная таблица упорядочена с самого высокого приоритета (1) до самого низкого (18).

Precedence Operator type Associativity Individual operators
1 member left-to-right . []
1 new right-to-left new
2 function call left-to-right ()
3 increment n/a ++
3 decrement n/a --
4 logical-not right-to-left !
4 bitwise not right-to-left ~
4 unary + right-to-left +
4 unary negation right-to-left -
4 typeof right-to-left typeof
4 void right-to-left void
4 delete right-to-left delete
5 multiplication left-to-right *
5 division left-to-right /
5 modulus left-to-right %
6 addition left-to-right +
6 subtraction left-to-right -
7 bitwise shift left-to-right << >> >>>
8 relational left-to-right < <= > >=
8 in left-to-right in
8 instanceof left-to-right instanceof
9 equality left-to-right == != === !==
10 bitwise-and left-to-right &
11 bitwise-xor left-to-right ^
12 bitwise-or left-to-right I
13 logical-and left-to-right &&
14 logical-or left-to-right II
15 conditional right-to-left ?:
16 yield right-to-left yield
17 assignment right-to-left = += -= *= /= %= <<= >>= >>>= &= ^= I=
18 comma left-to-right ,

JavaScript.

Приоритет операторов | BestProg

JavaScript, Теория

BestProgISch

Приоритет операторов определяет очередность выполнения операторов в выражении. Существует ряд операторов, обладающих одинаковым приоритетом. В этом случае очередность выполнения операторов определяется направлением вычислений, которое называется ассоциативностью. Направление вычислений для операторов с равным приоритетом может быть:

  • слева направо;
  • справа налево.

Ниже приведена таблица всех операторов языка JavaScript в порядке убывания приоритета.

Приоритет Оператор Ассоциативность Описание
0 ( ) Группировка

1

[ ]

.

new

Слева направо

Слева направо

Доступ к элементу массива

Доступ к свойству

Создание объекта со списком аргументов

2

function

new

Слева направо

Слева направо

Вызов функции

Создание объекта без списка аргументов

3 ++

Постфиксный инкремент

Постфиксный декремент

4

!

~

++

––

typeof

void

delete

Справа налево

Справа налево

Справа налево

Справа налево

Справа налево

Справа налево

Справа налево

Справа налево

Логическое отрицание

Поразрядное логич. отрицание

Отрицательное число

Префиксный инкремент

Префиксный декремент

Информация о типе

Вернуть undefined

Удаление

5 *

/

%

Слева направо

Слева направо

Слева направо

Умножение

Деление

Остаток от деления

6 +

Слева направо

Слева направо

Сложение

Вычитание

7 <<

>>

>>

Слева направо

Слева направо

Слева направо

Поразрядный сдвиг влево

Поразрядный сдвиг вправо

Поразрядный сдвиг вправо без знака

8 <

<=

>

>=

in

instanceof

Слева направо

Слева направо

Слева направо

Слева направо

Слева направо

Слева направо

Меньше

Меньше или равно

Больше

Больше или равно

Проверка наличия свойства

Проверка принадлежности типу

9 ==

!=

===

!==

Слева направо

Слева направо

Слева направо

Слева направо

Проверка на равенство

Проверка на неравенство

Проверка строгого равенства

Проверка строгого неравенства

10 & Слева направо Поразрядное И (AND)
11 ^ Слева направо Поразрядное исключающее ИЛИ (XOR)
12 | Слева направо Поразрядное ИЛИ (OR)
13 && Слева направо Логическое И (AND)
14 || Слева направо Логическое ИЛИ (OR)
15 ?: Справа налево Тернарный условный оператор
16 =

+=

-=

*=

/=

%=

<<=

>>=

>>>

&=

^=

!=

Справа налево Разновидности оператора присваивания
17 yield Справа налево Остановка и восстановление функции-генератора
18 , Слева направо Вычисляет оба операнда и возвращает значение другого

  ⇑


 

JavaScript

Приоритет оператора JavaScript

❮ Предыдущий Далее ❯

Как и в традиционной математике, сначала выполняется умножение:

пусть x = 100 + 50 * 3;

Попробуйте сами »

При использовании скобок сначала вычисляются операции внутри скобок:

let x = (100 + 50) * 3;

Попробуйте сами »

Операции с одинаковым приоритетом (например, * и /) вычисляются слева направо:

let x = 100 / 50 * 3;

Попробуйте сами »

Выход
Выражения в скобках вычисляются до остальная часть выражения
Функция выполняется до результат используется в остальной части выражения
Вал Оператор Описание Пример
18 ( ) Группировка выражений (100 + 50) * 3
17 . Член имя человека
17 [] Член человек[«имя»]
17 ?. Дополнительная цепочка ЕС2020 х?. г
17 () Функциональный вызов мояФункция()
17 новый Новое с аргументами новая дата («5 июня 2022 г.»)
16 новый Новый без аргументов новая дата()
Операторы приращения
Постфиксные приращения выполняются до префиксных приращений
15 ++ Инкремент постфикса я++
15 Уменьшение постфикса я—
14 ++ Приращение префикса ++i
14 Уменьшение префикса —я
НЕ Операторы
14 ! Логическое НЕ !(х==у)
14 ~ Побитовое НЕ ~ х
Унарные операторы
14 + Унар Плюс
14 Унарный минус
14 тип Тип данных тип х
14 пустота Оценить пустоту пустота(0)
14 удалить Удалить свойство удалить myCar. color
Арифметические операции
Возведение в степень выполняется до умножений
Умножение и деление выполняется до сложений и вычитаний
13 ** Возведение в степень ЕС2016 10 ** 2
12 * Умножение 10*5
12 / Раздел 10 / 5
12 % Остаток деления 10 % 5
11 + Дополнение 10 + 5
11 Вычитание 10 — 5
11 + Конкатенация «Джон» + «Доу»
Операторы смены
10 << Сдвиг влево х << 2
10 >> Сдвиг вправо (подпись) х >> 2
10 >>> Сдвиг вправо (без знака) х >>> 2
Реляционные операторы
9 в Недвижимость в Объекте «ПИ» в математике
9 экземпляр Экземпляр Объекта x экземпляр массива
Операторы сравнения
9 < Менее х < у
9 <= Меньше или равно х <= у
9 > Больше х > у
9 >= Больше или равно х >= Массив
8 == Равно х == у
8 === Строгое равенство х === у
8 != Неравный х != у
8 !== Строгая неравность
5 | Побитовое ИЛИ х | г
Логические операторы
4 && Логическое И х && у
3 || Логическое ИЛИ х || г
3 ?? Нулевое слияние ЕС2020 х ?? г
Условный (тернарный) оператор
2 ? : Состояние ? «да» : «нет»
Операторы присваивания
Присваивания выполняются после других операций
2 = Простое назначение х = у
2 : Назначение двоеточия х: 5
2 += Дополнительное назначение х += у
2 -= Задание на вычитание х -= у
2 *= Назначение умножения х *= у
2 **= Присвоение возведения в степень х **= у
2 /= Раздел Задание х /= у
2 %= Остаток назначения х %= у
2 <<= Назначение левой смены х <<= у
2 >>= Назначение правой смены х >>= у
2 >>>= Сдвиг вправо без знака х >>>= у 9= у
2 &&= Логическое И Назначение х &= у
2 ||= Логическое назначение ИЛИ х ||= у
2 => Стрелка х => у
2 выход Пауза/возобновление выхода x
2 выход* Делегат * x
2 . .. Разворот … х
1 , Запятая х, у


❮ Предыдущий Следующий ❯


ВЫБОР ЦВЕТА



Лучшие учебники
Учебное пособие по HTML
Учебное пособие по CSS
Учебное пособие по JavaScript
Учебное пособие
Учебное пособие по SQL
Учебное пособие по Python
Учебник по W3.CSS
Учебник по Bootstrap
Учебник по PHP
Учебник по Java
Учебник по C++
Учебник по jQuery

Основные ссылки
Справочник по HTML
Справочник по CSS
Справочник по JavaScript
Справочник по SQL
Справочник по Python
Справочник по W3.CSS
Справочник по Bootstrap
Справочник по PHP
Цвета HTML
Справочник по Java
Справочник по Angular
Справочник по jQuery


7 Top6s Examples Примеры HTML
Примеры CSS
Примеры JavaScript
Примеры инструкций
Примеры SQL
Примеры Python
Примеры W3. CSS
Примеры Bootstrap
Примеры PHP
Примеры Java
Примеры XML
Примеры jQuery


FORUM | О

W3Schools оптимизирован для обучения и обучения. Примеры могут быть упрощены для улучшения чтения и обучения. Учебники, ссылки и примеры постоянно пересматриваются, чтобы избежать ошибок, но мы не можем гарантировать полную правильность всего содержания. Используя W3Schools, вы соглашаетесь прочитать и принять наши условия использования, куки-файлы и политика конфиденциальности.

Copyright 1999-2023 Refsnes Data. Все права защищены.

W3Schools использует W3.CSS.

Приоритет оператора в JavaScript — GeeksforGeeks

Улучшить статью

Сохранить статью

  • Последнее обновление: 25 июн, 2020

  • Читать
  • Обсудить
  • Улучшить статью

    Сохранить статью

    Приоритет оператора относится к приоритету, который дается операторам при анализе инструкции, в которой есть более одного оператора, выполняющего операции. Важно обеспечить правильный результат, а также помочь компилятору понять, каким должен быть порядок операций. Операторы с более высоким приоритетом разрешаются первыми. Но по мере продвижения вниз по списку приоритет уменьшается и, следовательно, их разрешение.

    Приоритет и ассоциативность: Ассоциативность в целом означает, что независимо от порядка операндов для данной операции результат остается одним и тем же. Приоритет используется, чтобы сообщить компилятору, какие операции следует выполнять в первую очередь. Например, рассмотрим три числа 2, 3 и 4. Теперь рассмотрим две операции:

     ( 2 + 3 ) + 4 = 2 + ( 3 + 4 )
    ( 2 >= 3 ) или ( 1 != 4 ) 

    Первая операция ассоциативность , где порядок не имеет значения. Второй случай — это приоритет, когда для достижения желаемого результата должен быть правильный порядок выполнения операций.

    Ассоциативность не является единственной концепцией, в то время как при работе с операциями предшествования приходится иметь дело с ассоциативностью слева направо или справа налево. Это полностью зависит от операции и сообщает синтаксическому анализатору, с какого направления должна начинаться операция.

    Пример: 

     // ассоциативность слева направо: деление
    3/4
     
     // Ассоциативность справа налево: присваивание
    а = 3
     

    Таблица приоритета операторов: Таблица приоритетов операторов может помочь узнать приоритет оператора по отношению к другим операторам. По мере продвижения вниз по таблице приоритет этих операторов друг над другом уменьшается, то есть приоритет оператора ниже, чем у операторов над ним, и выше, чем у нижестоящих. Операторы в одной строке имеют одинаковый приоритет.

    В этой таблице 1 — наивысший приоритет, а 19 — низший приоритет.

    1 9у
    Приоритет Operator Description Associativity Example
    1 () Grouping (1+2)
    2 . Элемент слева направо obj.function
    [] Member слева направо obj[«func» 9 00411 new Create new Date()
    () Function call left to right func()
    3 ++ Postfix increment I ++
    POSTFIX DECEMENT I–
    4
    4 4444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444440034 ++i
    Декремент префикса –i
    ! Logical NOT !TRUE
    typeof Type typeof a
    5 ** Exponentiation right to left 4**2
    6 * Умножение слева направо 2*3
    / Division 18/9
    % Remainder 4%2
    7 + Addition left to right 2+ 4
    Вычитание 4-2
    8 . 0024 >>  Right shift y>>2
    >>>  Unsigned Right shift  y>>>2
    9 Less than Слева направо 3 <4
    <= Меньше или равны 3 <= 4
    > Большой, чем 4 4> 3 > .0031
    >=  Greater than or equal 4>=3
    in In “PI” in MATH
    instanceof Instance of  A instanceof B
    10 == Equality left to right x==y
    != Inequality x!=y
    13 | Bitwise OR left to right x|y
    14 && Logical AND left to right x&&y
    15 || Логическое ИЛИ слева направо x||y
    16 ? : Условный справа налево (x>y)?x:y
    17   Assignment right to left x=5
    += x+=3
    -= x-=3
    *= x *= 3
    /= x /= 3
    %= 4431
    %= 44431
    %= 44431
    %=
    %=
    %=
    %= .

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *