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