4

私が見つけることができる演算子の優先順位テーブルは次のとおりです。

https://developer.mozilla.org/en/JavaScript/Reference/Operators/Operator_Precedence

表によると、「>>」と「*」はどちらも左から右に関連付けられており、「>>」の優先順位が高いため、a >> b * cは(a >> b)*として説明する必要があると思います。 cただし、Firefoxでのテスト(Firebugを使用)では、次のように教えてください。

0x11 >> 1      ....    8
0x11 >> 1 * 2  ....    4

これは私を大いに混乱させます、代わりにそれは16であるべきですか?

OK、優先順位が明確でない場合は常に括弧を使用する必要があることを理解していますが、ルールがあるか、何が起こっているのかを説明する必要がありますか?

4

4 に答える 4

2

リンク先の表によると、*(5) は>>(7) よりも優先順位が高くなります。この表では、優先順位が高いほど最初にリストされていますが、紛らわしいことに、優先順位が高いことを示すために低い数字が使用されています。

于 2010-08-25T15:47:29.377 に答える
2

その表を見ると、*演算子は よりも優先順位が高い>>ため、*バインドが早くなります。次のように解釈されます。

  • 0x11 >> 1 * 2
  • 0x11 >> (1 * 2)
  • 0x11 >> (2)
  • 0x11 >> 2
于 2010-08-25T15:48:30.783 に答える
1

リンクした表によると、乗算はビットシフト(7)よりも優先順位が高い(5)。

表の上から:

次の表は、優先順位が高い (1) から低い (17) までの順序です。

于 2010-08-25T15:48:16.367 に答える
1

いいえ、それ*は より優先順位が高いと言ってい>>ます。:)

于 2010-08-25T15:48:19.983 に答える