Javascript:如何在postfix增量运算符之前评估比较运算符?

时间:2014-12-25 17:17:15

标签: javascript

According to this precedence table递增比比较运算符具有高优先级。然而,当我在同一个表达式中递增和比较时,首先评估比较。这是为什么?

var i = 0, k = 0;
console.log(i === k);
>true
console.log(i++ === k);
>true
>false

如何在后缀增量运算符之前评估比较运算符?

3 个答案:

答案 0 :(得分:5)

在比较之前,确实首先评估后缀增量,因此首选项表是正确的。但是后缀增量评估的值不是递增值,它是递增前的值。正如亚当指出的那样,这是后缀增量的预期行为。

答案 1 :(得分:3)

这就是后增量运算符的工作原理。它使用表达式中的变量,然后递增。如果您希望首先发生增量,则可以使用预增量运算符,如下所示:

console.log(++i === k); 

答案 2 :(得分:1)

您的优先级与功能混淆。 Postfix增量运算符确实具有比前缀增量运算符更高的优先级,因此它首先被处理。前缀增量运算符的功能是确定它应该在返回后递增。这不是优先事项。