在JavaScript中,我注意到ES6 for ... of循环的性能与传统for (start; stop; step)循环有很大不同.
const n = 10000;
const arr = Array(n).fill().map((e, i) => i); // [0, n)
console.log('n =', n);
let sum1 = 0;
console.time('for let i');
for (let i = 0; i < arr.length; i++) {
sum1 += arr[i];
}
console.timeEnd('for let i');
let sum2 = 0;
console.time('for of');
for (let v of arr) {
sum2 += v;
}
console.timeEnd('for of');
Run Code Online (Sandbox Code Playgroud)
n = 10
for let i: 0.350ms
for of: …Run Code Online (Sandbox Code Playgroud)