Javascript:为什么比较运算符在后缀增量运算符之前计算?

Javascript:为什么比较运算符在后缀增量运算符之前计算?,javascript,Javascript,递增比比较运算符具有更高的优先级。然而,当我在同一个表达式中递增和比较时,首先计算比较。为什么会这样 var i = 0, k = 0; console.log(i === k); >true console.log(i++ === k); >true >false 为什么比较运算符在后缀增量运算符之前计算?这就是后缀增量运算符的工作方式。它在表达式中使用变量,然后递增。如果希望先执行增量,则可以使用如下预增量运算符: console.log(++i === k); 这就

递增比比较运算符具有更高的优先级。然而,当我在同一个表达式中递增和比较时,首先计算比较。为什么会这样

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

为什么比较运算符在后缀增量运算符之前计算?

这就是后缀增量运算符的工作方式。它在表达式中使用变量,然后递增。如果希望先执行增量,则可以使用如下预增量运算符:

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

这就是后增量操作符的工作方式。它在表达式中使用变量,然后递增。如果希望先执行增量,则可以使用如下预增量运算符:

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

在比较之前,确实首先计算后缀增量,因此首选项表是正确的。但是后缀增量计算的值不是递增的值,而是递增之前的值。正如Adam指出的,这是后缀增量的预期行为。

在比较之前,后缀增量确实是首先评估的,因此首选项表是正确的。但是后缀增量计算的值不是递增的值,而是递增之前的值。正如Adam所指出的,这是后缀增量的预期行为。

您混淆了优先级和功能。后缀增量运算符的优先级确实高于前缀增量运算符,因此它首先被处理。前缀增量运算符的功能决定了它在返回后应该递增。这不是优先的问题

你把优先权和功能混淆了。后缀增量运算符的优先级确实高于前缀增量运算符,因此它首先被处理。前缀增量运算符的功能决定了它在返回后应该递增。这不是优先的问题

谢谢-我一直在努力解释为什么桌子是正确的,但还是没能做到。谢谢+1谢谢-我正在努力解释为什么这张桌子是正确的,但还是没能做到。谢谢+1