对运算符优先级的困惑
Confusion About 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
比 =
& ++...
有更高的优先级吗?
求值顺序为(从高到低):后缀运算符a++
、前缀运算符++a
、加法运算符+
(从左到右)、和赋值运算符 =
,来自 MDN.
看看以下内容:
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;
求值顺序保持不变,只是后缀运算符在最后一个运算(即赋值运算符)完成后递增 a
的值。
我正在阅读 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
比 =
& ++...
有更高的优先级吗?
求值顺序为(从高到低):后缀运算符a++
、前缀运算符++a
、加法运算符+
(从左到右)、和赋值运算符 =
,来自 MDN.
看看以下内容:
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;
求值顺序保持不变,只是后缀运算符在最后一个运算(即赋值运算符)完成后递增 a
的值。