Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript操作符优先级逻辑让我感到困惑_Javascript_Operators_Operator Precedence - Fatal编程技术网

JavaScript操作符优先级逻辑让我感到困惑

JavaScript操作符优先级逻辑让我感到困惑,javascript,operators,operator-precedence,Javascript,Operators,Operator Precedence,我可以找到的运算符优先级表是: 根据该表,“>>”和“*”都是从左到右关联的,“>>”具有更高的优先级,所以我认为 a>>b*c应解释为(a>>b)*c 但是,我在Firefox中的测试(使用Firebug)告诉我: 0x11 >> 1 .... 8 0x11 >> 1 * 2 .... 4 这让我很困惑,应该改为16吗 好的,我知道当优先级不明确时,我们总是应该使用括号,但是应该有一个规则或解释发生了什么?根据您链接的表格,*的优先级(5)高

我可以找到的运算符优先级表是:

根据该表,“>>”和“*”都是从左到右关联的,“>>”具有更高的优先级,所以我认为 a>>b*c应解释为(a>>b)*c 但是,我在Firefox中的测试(使用Firebug)告诉我:

0x11 >> 1      ....    8
0x11 >> 1 * 2  ....    4
这让我很困惑,应该改为16吗


好的,我知道当优先级不明确时,我们总是应该使用括号,但是应该有一个规则或解释发生了什么?

根据您链接的表格,
*
的优先级(5)高于
>
(7);较高的优先级列在该表的第一位,但令人困惑的是,较低的数字表示较高的优先级。

根据您链接的表,乘法的优先级(5)高于位移位(7)

从表格顶部开始:

下表按优先级从最高(1)到最低(17)的顺序排列


不,它说
*
的优先级高于
>
:)

如果我查看该表,
*
运算符的优先级高于
>
,因此
*
绑定得更早。它被解释为:

  • 0x11>>1*2
  • 0x11>>(1*2)
  • 0x11>>(2)
  • 0x11>>2

因为我的理解错误,这让我困惑了大约一个小时。我很愚蠢,谢谢你们这么多的回复,答案会转到最快的答案,如果这不公平,很抱歉……哇,你不愚蠢,最高优先级是最低值。这毫无意义。有些人真的只是想看着世界燃烧…@Dokkat这个映射很有意义,当最高优先级数字不是1时会让人困惑。在比赛中,当你排名第一时,你就赢了。