首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计数器++与计数器= counter+1;

计数器++与计数器= counter+1;
EN

Stack Overflow用户
提问于 2015-05-24 06:33:45
回答 3查看 20K关注 0票数 3
代码语言:javascript
复制
var counter = 0;
var increment = function(){
    return counter++;
    // return counter=counter+1;
}

console.log(increment());

为什么计数器++;返回0,但计数器=计数器+1;返回1?

EN

回答 3

Stack Overflow用户

发布于 2015-05-24 06:38:03

后置增量运算符返回求值的当前值,然后将其递增,因此,当第二次引用时,值的变化是明显的。

因此,当执行return语句时,该值尚未增加。您可以通过以下操作进行交叉检查:

代码语言:javascript
复制
console.log(counter++); // 0
console.log(counter); // 1
return counter; // obviously 1

尝试预修复操作符,该操作符递增,然后返回要计算的增量值。

代码语言:javascript
复制
return ++counter; // 1 
票数 3
EN

Stack Overflow用户

发布于 2015-05-24 06:45:34

这称为),唯一的区别实际上是操作的顺序:

代码语言:javascript
复制
counter;

计算为值。(0)

代码语言:javascript
复制
counter++;

计算值为值(0),执行计算(0 -> 1)并修改变量(counter -> 1)。

代码语言:javascript
复制
++counter;

执行计算(0 + 1),修改变量(counter -> 1)并计算值(1)。

票数 1
EN

Stack Overflow用户

发布于 2015-05-24 07:02:31

var计数器= 0;

代码语言:javascript
复制
var increment = function(){
// now counter is 0 and after return it increment it's value to 1
// return 0 then 0+1=1;
    return counter++;
// calculate like math, counter = 0+1 then counter = 1, now return 1;
    // return counter=counter+1;
}

console.log(increment());

在第一个场景中,

代码语言:javascript
复制
return counter++;

此语句为后缀,计算结果如下

代码语言:javascript
复制
return 0; and then 0+1=1

在第二种情况下,

代码语言:javascript
复制
return counter=counter+1;

像数学一样计算,

代码语言:javascript
复制
return counter = 0+1 then,
return counter = 1, 
return 1;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30420758

复制
相关文章

相似问题

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