关于运营商优先权的困惑

时间:2016-09-10 09:33:01

标签: javascript operators operator-precedence

我正在浏览Kyle's You Dont Know Js中的'Grammer'一章。

根据this link at MDN...++ Postfix increment优先于=&偶++... Prefix increment。然而,在javascript中,以下代码似乎证明不是这样。

var a = 1;
var b = a++; // b = 1; a = 2;
var c = ++a; // c = 3; a = 3;

我错了什么?以上代码是否显示=& ...++ Postfix increment的优先级高于=& ++...

1 个答案:

答案 0 :(得分:1)

评估的顺序是(从高优先级到低优先级):后缀运算符++a,前缀运算符+,加法运算符=(从左到右),以及赋值运算符var a = 1; var b = a++ + ++a + a++; // The order is: // b = 1 + ++a + a++; // b = 1 + ++a + 2; // b = 1 + 4 + 2; // b = 7; a = 4; ,来自MDN

看看以下内容:

a

维持评估顺序,只是后缀运算符在最后一个操作完成后递增text的值,即赋值运算符。