编程语言
首页 > 编程语言> > JavaScript运算符优先逻辑让我很困惑

JavaScript运算符优先逻辑让我很困惑

作者:互联网

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

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而不是?

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

解决方法:

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

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

标签:javascript,operators,operator-precedence
来源: https://codeday.me/bug/20190606/1190012.html