let statement in loop doesn't work as expected

2019-07-17 09:01发布

问题:

I am trying some example in ECMAScript 6. That is working differently compared to other browsers. This returns true in Firefox, but it returns false in IE. Why is this working different in Internet Explorer?

let callbacks = []
for (let i = 0; i <= 2; i++) {
  callbacks[i] = function () { console.log(i); return i * 2 }
}
console.log(callbacks[0]() === 0);
console.log(callbacks[1]() === 2);
console.log(callbacks[2]() === 4);

回答1:

According to caniuse.com IE11 kind of supports let:

let variables are not bound separately to each iteration of for loops