编程语言
首页 > 编程语言> > javascript – 在这个循环中i和i之间有区别吗?

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