Revision 326319 of Operator Precedence

  • URL ревизии: Core_JavaScript_1.5_Reference/Statements/Приоритеты_операторов
  • Заголовок ревизии: Приоритеты операторов
  • ID ревизии: 326319
  • Создано:
  • Автор: hazestalker
  • Это текущая версия? Нет
  • комментировать
Метки: 

Содержание версии

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

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

Распространённый пример:

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

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

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

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

a OP b OP c

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

a = b = 5;

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

Таблица

 Следующая таблица упорядочена от высшего  (1) к низшему (17) приоритету.

Приоритет Тип оператора Ассоциативность Индивидуальные операторы
1 member left-to-right .
[]
new right-to-left new
2 function call left-to-right ()
3 increment n/a ++
decrement n/a --
4 logical-not right-to-left !
bitwise not right-to-left ~
unary + right-to-left +
unary negation right-to-left -
typeof right-to-left typeof
void right-to-left void
delete right-to-left delete
5 multiplication left-to-right *
division left-to-right /
modulus left-to-right %
6 addition left-to-right +
subtraction left-to-right -
7 bitwise shift left-to-right <<
>>
>>>
8 relational left-to-right <
<=
>
>=
in left-to-right in
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 |
13 logical-and left-to-right &&
14 logical-or left-to-right ||
15 conditional right-to-left ?:
16 yield right-to-left yield
17 assignment right-to-left =
+=
-=
*=
/=
%=
<<=
>>=
>>>=
&=
^=
|=
18 comma left-to-right ,

{{ languages( { "fr": "fr/Référence_de_JavaScript_1.5_Core/Opérateurs/Priorités_des_opérateurs", "ja": "ja/JavaScript/Reference/Operators/Operator_Precedence", "pl": "pl/Dokumentacja_języka_JavaScript_1.5/Operatory/Pierwszeństwo_operatorów" } ) }}

 

Источник ревизии

<h3 id="Summary" name="Summary">Основная информация</h3>
<p>Приоритет операторов определяет порядок, в котором операторы выполняются. Операторы с более высоким приоритетом выполняются первыми.</p>
<p>Распространённый пример:</p>
<pre class="eval">
3 + 4 * 5 // возвращает 23	 
</pre>
<p>Оператор умножения ("<code>*</code>") имеет более высокий приоритет, чем оператор сложения&nbsp;("<code>+</code>") и, таким образом будет выполняться первым.</p>
<h3 id="Associativity" name="Associativity">Ассоциативность</h3>
<p>Ассоциативность определяет порядок, в котором операторы с одинаковым приоритетом обрабатываются. Например, рассмотрим выражение:</p>
<pre class="eval">
a OP b OP c
</pre>
<p>Левая ассоциативность (слева-направо) означает, что оно обрабатывается как <code>(a OP b) OP c</code>, в то время как правая ассоциативность (справа-налево) означает, что оно интерпретируется как <code>a OP (b OP c)</code>. Операторы назначенные как право-ассоциативные, вы также можете записать:</p>
<pre class="eval">
a = b = 5;
</pre>
<p>с ожидаемым результатом, что <code>a</code> и <code>b</code> получат значение 5. Это потому, что оператор присваивания возвращает значение&nbsp;которое ему назначено. Во-первых, <code>b</code> присваивается 5. Затем <code>a</code> присваивает значение <code>b</code>.</p>
<h3 id="Table" name="Table">Таблица</h3>
<p><span style="display: none;">&nbsp;</span>Следующая таблица упорядочена от высшего<span style="display: none;">&nbsp;</span> (1) к низшему (17) приоритету.</p>
<table class="fullwidth-table">
  <tbody>
    <tr>
      <th>Приоритет</th>
      <th>Тип оператора</th>
      <th>Ассоциативность</th>
      <th>Индивидуальные операторы</th>
    </tr>
    <tr>
      <td rowspan="3">1</td>
      <td rowspan="2"><a href="/en/JavaScript/Reference/Operators/Member_Operators" title="en/Core_JavaScript_1.5_Reference/Operators/Member_Operators">member</a></td>
      <td rowspan="2">left-to-right</td>
      <td>.</td>
    </tr>
    <tr>
      <td>[]</td>
    </tr>
    <tr>
      <td><a href="/en/JavaScript/Reference/Operators/Special/new" title="en/Core_JavaScript_1.5_Reference/Operators/Special_Operators/new_Operator">new</a></td>
      <td>right-to-left</td>
      <td>new</td>
    </tr>
    <tr>
      <td>2</td>
      <td><a href="/en/Core_JavaScript_1.5_Reference/Operators/Special_Operators/function_call" title="en/Core_JavaScript_1.5_Reference/Operators/Special_Operators/function_call">function call</a></td>
      <td>left-to-right</td>
      <td>()</td>
    </tr>
    <tr>
      <td rowspan="2">3</td>
      <td><a href="/en/JavaScript/Reference/Operators/Arithmetic_Operators" title="en/Core_JavaScript_1.5_Reference/Operators/Arithmetic_Operators">increment</a></td>
      <td>n/a</td>
      <td>++</td>
    </tr>
    <tr>
      <td><a href="/en/JavaScript/Reference/Operators/Arithmetic_Operators" title="en/Core_JavaScript_1.5_Reference/Operators/Arithmetic_Operators">decrement</a></td>
      <td>n/a</td>
      <td>--</td>
    </tr>
    <tr>
      <td rowspan="7">4</td>
      <td><a href="/en/JavaScript/Reference/Operators/Logical_Operators" title="en/Core_JavaScript_1.5_Reference/Operators/Logical_Operators">logical-not</a></td>
      <td>right-to-left</td>
      <td>!</td>
    </tr>
    <tr>
      <td><a href="/en/JavaScript/Reference/Operators/Bitwise_Operators" title="en/Core_JavaScript_1.5_Reference/Operators/Bitwise_Operators">bitwise not</a></td>
      <td>right-to-left</td>
      <td>~</td>
    </tr>
    <tr>
      <td><a href="/en/JavaScript/Reference/Operators/Arithmetic_Operators" title="en/Core_JavaScript_1.5_Reference/Operators/Arithmetic_Operators">unary +</a></td>
      <td>right-to-left</td>
      <td>+</td>
    </tr>
    <tr>
      <td><a href="/en/JavaScript/Reference/Operators/Arithmetic_Operators" title="en/Core_JavaScript_1.5_Reference/Operators/Arithmetic_Operators">unary negation</a></td>
      <td>right-to-left</td>
      <td>-</td>
    </tr>
    <tr>
      <td><a href="/en/JavaScript/Reference/Operators/Special/typeof" title="en/Core_JavaScript_1.5_Reference/Operators/Special_Operators/typeof_Operator">typeof</a></td>
      <td>right-to-left</td>
      <td>typeof</td>
    </tr>
    <tr>
      <td><a href="/en/JavaScript/Reference/Operators/Special/void" title="en/Core_JavaScript_1.5_Reference/Operators/Special_Operators/void_Operator">void</a></td>
      <td>right-to-left</td>
      <td>void</td>
    </tr>
    <tr>
      <td><a href="/en/JavaScript/Reference/Operators/Special/delete" title="en/Core_JavaScript_1.5_Reference/Operators/Special_Operators/delete_Operator">delete</a></td>
      <td>right-to-left</td>
      <td>delete</td>
    </tr>
    <tr>
      <td rowspan="3">5</td>
      <td><a href="/en/JavaScript/Reference/Operators/Arithmetic_Operators" title="en/Core_JavaScript_1.5_Reference/Operators/Arithmetic_Operators">multiplication</a></td>
      <td>left-to-right</td>
      <td>*</td>
    </tr>
    <tr>
      <td><a href="/en/JavaScript/Reference/Operators/Arithmetic_Operators" title="en/Core_JavaScript_1.5_Reference/Operators/Arithmetic_Operators">division</a></td>
      <td>left-to-right</td>
      <td>/</td>
    </tr>
    <tr>
      <td><a href="/en/JavaScript/Reference/Operators/Arithmetic_Operators" title="en/Core_JavaScript_1.5_Reference/Operators/Arithmetic_Operators">modulus</a></td>
      <td>left-to-right</td>
      <td>%</td>
    </tr>
    <tr>
      <td rowspan="2">6</td>
      <td><a href="/en/JavaScript/Reference/Operators/Arithmetic_Operators" title="en/Core_JavaScript_1.5_Reference/Operators/Arithmetic_Operators">addition</a></td>
      <td>left-to-right</td>
      <td>+</td>
    </tr>
    <tr>
      <td><a href="/en/JavaScript/Reference/Operators/Arithmetic_Operators" title="en/Core_JavaScript_1.5_Reference/Operators/Arithmetic_Operators">subtraction</a></td>
      <td>left-to-right</td>
      <td>-</td>
    </tr>
    <tr>
      <td rowspan="3">7</td>
      <td rowspan="3"><a href="/en/JavaScript/Reference/Operators/Bitwise_Operators" title="en/Core_JavaScript_1.5_Reference/Operators/Bitwise_Operators">bitwise shift</a></td>
      <td rowspan="3">left-to-right</td>
      <td>&lt;&lt;</td>
    </tr>
    <tr>
      <td>&gt;&gt;</td>
    </tr>
    <tr>
      <td>&gt;&gt;&gt;</td>
    </tr>
    <tr>
      <td rowspan="6">8</td>
      <td rowspan="4"><a href="/en/JavaScript/Reference/Operators/Comparison_Operators" title="en/Core_JavaScript_1.5_Reference/Operators/Comparison_Operators">relational</a></td>
      <td rowspan="4">left-to-right</td>
      <td>&lt;</td>
    </tr>
    <tr>
      <td>&lt;=</td>
    </tr>
    <tr>
      <td>&gt;</td>
    </tr>
    <tr>
      <td>&gt;=</td>
    </tr>
    <tr>
      <td><a href="/en/JavaScript/Reference/Operators/Special/in" title="en/Core_JavaScript_1.5_Reference/Operators/Special_Operators/in_Operator">in</a></td>
      <td>left-to-right</td>
      <td>in</td>
    </tr>
    <tr>
      <td><a href="/en/JavaScript/Reference/Operators/Special/instanceof" title="en/Core_JavaScript_1.5_Reference/Operators/Special_Operators/instanceof_Operator">instanceof</a></td>
      <td>left-to-right</td>
      <td>instanceof</td>
    </tr>
    <tr>
      <td rowspan="4">9</td>
      <td rowspan="4"><a href="/en/JavaScript/Reference/Operators/Comparison_Operators" title="en/Core_JavaScript_1.5_Reference/Operators/Comparison_Operators">equality</a></td>
      <td rowspan="4">left-to-right</td>
      <td>==</td>
    </tr>
    <tr>
      <td>!=</td>
    </tr>
    <tr>
      <td>===</td>
    </tr>
    <tr>
      <td>!==</td>
    </tr>
    <tr>
      <td>10</td>
      <td><a href="/en/JavaScript/Reference/Operators/Bitwise_Operators" title="en/Core_JavaScript_1.5_Reference/Operators/Bitwise_Operators">bitwise-and</a></td>
      <td>left-to-right</td>
      <td>&amp;</td>
    </tr>
    <tr>
      <td>11</td>
      <td><a href="/en/JavaScript/Reference/Operators/Bitwise_Operators" title="en/Core_JavaScript_1.5_Reference/Operators/Bitwise_Operators">bitwise-xor</a></td>
      <td>left-to-right</td>
      <td>^</td>
    </tr>
    <tr>
      <td>12</td>
      <td><a href="/en/JavaScript/Reference/Operators/Bitwise_Operators" title="en/Core_JavaScript_1.5_Reference/Operators/Bitwise_Operators">bitwise-or</a></td>
      <td>left-to-right</td>
      <td>|</td>
    </tr>
    <tr>
      <td>13</td>
      <td><a href="/en/JavaScript/Reference/Operators/Logical_Operators" title="en/Core_JavaScript_1.5_Reference/Operators/Logical_Operators">logical-and</a></td>
      <td>left-to-right</td>
      <td>&amp;&amp;</td>
    </tr>
    <tr>
      <td>14</td>
      <td><a href="/en/JavaScript/Reference/Operators/Logical_Operators" title="en/Core_JavaScript_1.5_Reference/Operators/Logical_Operators">logical-or</a></td>
      <td>left-to-right</td>
      <td>||</td>
    </tr>
    <tr>
      <td>15</td>
      <td><a href="/en/JavaScript/Reference/Operators/Special/Conditional_Operator" title="en/Core_JavaScript_1.5_Reference/Operators/Special_Operators/Conditional_Operator">conditional</a></td>
      <td>right-to-left</td>
      <td>?:</td>
    </tr>
    <tr>
      <td>16</td>
      <td><a href="/en-US/docs/JavaScript/Reference/Operators/yield" title="en-US/docs/JavaScript/Reference/Operators/yield">yield</a></td>
      <td>right-to-left</td>
      <td>yield</td>
    </tr>
    <tr>
      <td rowspan="12">17</td>
      <td rowspan="12"><a href="/en/JavaScript/Reference/Operators/Assignment_Operators" title="en/Core_JavaScript_1.5_Reference/Operators/Assignment_Operators">assignment</a></td>
      <td rowspan="12">right-to-left</td>
      <td>=</td>
    </tr>
    <tr>
      <td>+=</td>
    </tr>
    <tr>
      <td>-=</td>
    </tr>
    <tr>
      <td>*=</td>
    </tr>
    <tr>
      <td>/=</td>
    </tr>
    <tr>
      <td>%=</td>
    </tr>
    <tr>
      <td>&lt;&lt;=</td>
    </tr>
    <tr>
      <td>&gt;&gt;=</td>
    </tr>
    <tr>
      <td>&gt;&gt;&gt;=</td>
    </tr>
    <tr>
      <td>&amp;=</td>
    </tr>
    <tr>
      <td>^=</td>
    </tr>
    <tr>
      <td>|=</td>
    </tr>
    <tr>
      <td>18</td>
      <td><a href="/en/JavaScript/Reference/Operators/Special/Comma_Operator" title="en/Core_JavaScript_1.5_Reference/Operators/Special_Operators/Comma_Operator">comma</a></td>
      <td>left-to-right</td>
      <td>,</td>
    </tr>
  </tbody>
</table>
<p>{{ languages( { "fr": "fr/Référence_de_JavaScript_1.5_Core/Opérateurs/Priorités_des_opérateurs", "ja": "ja/JavaScript/Reference/Operators/Operator_Precedence", "pl": "pl/Dokumentacja_języka_JavaScript_1.5/Operatory/Pierwszeństwo_operatorów" } ) }}</p>
<div id="cke_pastebin" style="position: absolute; top: 966px; width: 1px; height: 1px; overflow: hidden; left: -1000px;">
  &nbsp;</div>
Вернуть эту версию