首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Javascript:为什么比较运算符在后缀增量运算符之前计算?

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

Stack Overflow用户
提问于 2014-12-26 01:17:15
回答 3查看 88关注 0票数 1

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

代码语言:javascript
运行
复制
var i = 0, k = 0;
console.log(i === k);
>true
console.log(i++ === k);
>true
>false

为什么比较运算符比后缀增量运算符更早计算?

EN

回答 3

Stack Overflow用户

发布于 2014-12-26 01:27:42

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

票数 5
EN

Stack Overflow用户

发布于 2014-12-26 01:19:12

这就是后增量运算符的工作方式。它使用表达式中的变量,然后递增。如果您希望增量操作首先发生,您可以像这样使用预增量运算符:

代码语言:javascript
运行
复制
console.log(++i === k); 
票数 3
EN

Stack Overflow用户

发布于 2014-12-26 01:29:19

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27649290

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档