javascript – 在这个循环中i和i之间有区别吗?
作者:互联网
array.prototype.reduce函数位于:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce
它有以下循环:
for (index = 0; length > index; ++index) {
if (this.hasOwnProperty(index)) {
if (isValueSet) {
value = callback(value, this[index], index, this);
} else {
value = this[index];
isValueSet = true;
}
}
}
我不认为索引在这里是先增加还是后增加,因为它是在每次循环迭代之后完成的,但是想要确定.
可以将其更改为index = 1,以便传递jslint吗?请不要讨论jslint警告的优点.
这种变化会有什么不同吗?
解决方法:
i,i和i = 1之间的唯一区别是从表达式返回的值.考虑以下:
// Case 1:
var i = 0, r = i++;
console.log(i, r); // 1, 0
// Case 2:
var i = 0, r = ++i;
console.log(i, r); // 1, 1
// Case 3:
var i = 0, r = (i += 1);
console.log(i, r); // 1, 1
在这些情况下,我在增量后保持不变,但r是不同的,i = 1只是一个稍微冗长的形式的i.
在你的代码中,你根本没有使用返回值,所以不,没有区别.就个人而言,我更喜欢使用i,除非特别需要使用其他形式之一.
标签:javascript,jslint,loops,post-increment,pre-increment 来源: https://codeday.me/bug/20190718/1491362.html