English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Приоритет операторов определяет способ их интерпретации.
Операции с более высоким приоритетом становятся операндами для операций с более низким приоритетом.
В следующем примере приоритет умножения выше, чем сложение, что определяет результат операции.
// Сначала умножить 3 на 5, затем добавить 10 var x = 10 + 3 * 5;Тест на‹/›
Напротив, если мы хотим сначала выполнить операцию сложения, то её нужно объединить в скобки, которые всегда имеют наивысший приоритет.
// Сначала сложить 10 и 3, затем умножить на 5 var x = (10 + 3) * 5;Тест на‹/›
При использовании скобок сначала вычисляются операции внутри скоб.
Когда у многих операций одинаковый приоритет (например, сложение и вычитание), они вычисляются слева направо:
var x = 10 + 3 - 5;Тест на‹/›
Вычисление выражений также зависит от свойств ассоциативности.
Ассоциативность определяет направление вычисления всего выражения (с правой стороны налево или слева направо).
Если в выражении中出现两个或多个具有相同优先级的运算атор, то сначала будет вычисляться哪个? Свойства ассоциативности отвечают на этот вопрос.
Пожалуйста, обратитесь к таблице, чтобы решить любые проблемы с приоритетом или связностью в JavaScript
Операторы | Использование описания | Союзы операторов | Приоритет операторов |
---|---|---|---|
() | Вызов метода/функции, группировка | Слева направо | Максимальное значение - 1 |
[] | Доступ к элементам массива | Слева направо | 1 |
. | Доступ к свойствам объекта | Слева направо | 1 |
++ | Увеличение на один | Справа налево | 2 |
-- | Уменьшение на один | Справа налево | 2 |
- | Вычитание | Справа налево | 2 |
! | Логическое не | Справа налево | 2 |
~ | Битовое не | Справа налево | 2 |
delete | Удаление значения массива или свойства объекта | Справа налево | 2 |
new | Создание объекта | Справа налево | 2 |
typeof | Возвращаемый тип данных | Справа налево | 2 |
void | Не указывать возвращаемое значение | Справа налево | 2 |
/ | Деление | Слева направо | 3 |
* | Умножение | Слева направо | 3 |
% | Оставшаяся часть | Слева направо | 3 |
+ | Сложение | Слева направо | 4 |
+ | Слияние строк | Слева направо | 4 |
- | Вычитание | Слева направо | 4 |
>> | Битовое правое смещение | Слева направо | 5 |
<< | Битовое левое смещение | Слева направо | 5 |
>, >= | Больше, больше или равно | Слева направо | 6 |
<, <= | Меньше, меньше или равно | Слева направо | 6 |
== | Эквивалентны | Слева направо | 7 |
!= | Не эквивалентны | Слева направо | 7 |
=== | Эквивалентны/строго эквивалентны (одинаковые типы данных) | Слева направо | 7 |
!== | Не эквивалентны/строго не эквивалентны (разные типы данных) | Слева направо | 7 |
& | Битовое И | Слева направо | 8 |
^ | Битовое ИЛИ исключающее | Слева направо | 9 |
| | Битовое ИЛИ | Слева направо | 10 |
&& | Логическое И | Слева направо | 11 |
|| | Логическое ИЛИ | Слева направо | 12 |
?: | Условный枝 | Слева направо | 13 |
= | Ассигнование | Справа налево | 14 |
*=, /=, %=, +=, -=, <<=, >>=, >>>=, &=, ^=, |= | Деление по предыдущему оператору | Справа налево | 14 |
, | Множественная оценка | Слева направо | Минимум: 15 |