counter ++ vs counter = counter+1;
counter ++ vs counter = counter+1;
var counter = 0;
var increment = function(){
return counter++;
// return counter=counter+1;
}
console.log(increment());
为什么counter ++;返回0而counter = counter +1;返回1?
后置自增运算符返回当前值用于求值,然后对其进行自增,因此当第二次引用该值时,值的变化是明显的。
因此,当return
语句执行时,值还没有递增。您可以通过以下操作进行交叉检查:
console.log(counter++); // 0
console.log(counter); // 1
return counter; // obviously 1
尝试对加1的前缀运算符,然后返回加1的待求值。
return ++counter; // 1
这被称为前缀(++x
) vs后缀(x++
),唯一的区别实际上是操作顺序:
counter;
计算为一个值。(0)
counter++;
计算一个值(0),执行一个计算(0 -> 1)并修改一个变量(counter
-> 1)。
++counter;
执行计算(0 + 1),修改变量(counter
-> 1)并求值(1)。
var counter = 0;
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());
在第一个场景中,
return counter++;
该语句为后缀,计算结果类似于
return 0; and then 0+1=1
在第二个场景中,
return counter=counter+1;
像数学一样计算,
return counter = 0+1 then,
return counter = 1,
return 1;
相关文章:
- 停止并重置收获's Tick Counter jQuery插件
- PDF Javascript counter
- counter是在单击add字段时递增值,而不是在单击remove字段时递减值
- Qualtrics Word Counter Javascript
- jQuery counter from specified variables
- 使用Javascript复制元素并命名w/counter
- for的区别.In和for循环,以及counter声明
- jlint警告' var counter的重新声明'是必要的吗?
- Counter在Javascript中是相同值的3倍
- Javascript Uncaught TypeError: Facebook Like Counter
- JavaScript音节Counter-每行计数
- 如何将counter的值正确地添加到变量名中
- counter ++ vs counter = counter+1;
- var counter = array.长度,温度,索引平均值