can someone explain to me why the first code always print 3 and the second code work well?
var buttons = document.getElementsByTagName('button');
for (var i = 0; i < buttons.length; i++) {
buttons[i].addEventListener('click', function() {
console.log('You clicked button #' + i);
});
}
vs
var buttons = document.getElementsByTagName('button');
for (var i = 0; i < buttons.length; i++) {
let j = i;
buttons[j].addEventListener('click', function() {
console.log('You clicked button #' + j);
});
}