首页 > 解决方案 > 为什么使用 JavaScript 后缀递增/递减运算符?

问题描述

我目前正在JavaScript.info学习 ES6 ,它说的是增量/减量运算符:

前缀形式返回新值,而后缀形式返回旧值(在递增/递减之前)...

如果我们想增加一个值并立即使用运算符的结果,我们需要前缀形式...

如果我们想增加一个值但使用它以前的值,我们需要后缀形式。

但是我很困惑,什么时候需要在变量增加后使用它的先前值?是否可以安全地假设无论它在哪里,这些都是边缘情况,并且++counter几乎总是应该首选前缀形式,或者实际上有充分的理由证明后缀counter++形式在野外更常见?

标签: javascript

解决方案


但是我很困惑,什么时候需要在变量增加后使用它的先前值?

这个想法是(1)使用以前的值,然后(2)增加变量。例如,您可以像这样使用它:

let index = 0;

const obj1 = { id: index++ };
const obj2 = { id: index++ };

console.log(obj1);
console.log(obj2);

有时,这就是你所需要的。其他时候,您可能希望在增量完成后提取值,例如:

let highestIndexSoFar = 0;

const obj1 = { id: ++highestIndexSoFar };
const obj2 = { id: ++highestIndexSoFar };

console.log(obj1);
console.log(obj2);
console.log(highestIndexSoFar);

这取决于实际情况。两者都有自己的位置。

不过,另一种选择是避免它们,而是仅在表达式上下文之外作为独立语句递增 - 有些人可能会发现它更具可读性:

let highestIndexSoFar = 0;

highestIndexSoFar++;
const obj1 = { id: highestIndexSoFar };
highestIndexSoFar++;
const obj2 = { id: highestIndexSoFar };

console.log(obj1);
console.log(obj2);
console.log(highestIndexSoFar);


推荐阅读