我正在浏览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
的优先级高于=
& ++...
?
答案 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
的值,即赋值运算符。