I am learning event-loops JavaScript but i have found this unknown behavior of kaywords let and var using in event-loops code block. But they works fine when using them simple loops. Please help me in this regards. Code block is as follows:
for (let i = 0; i < 5; i++) {
  setTimeout(() => {
    console.log("let keyword output : ", i);
  }, 0);
}
for (var i = 0; i < 5; i++) {
  setTimeout(() => {
    console.log("var keyword output : ", i);
  }, 0);
}
Their output is as follow respectively:
let keyword output :  0
let keyword output :  1
let keyword output :  2
let keyword output :  3
let keyword output :  4
var keyword output :  5
var keyword output :  5
var keyword output :  5
var keyword output :  5
var keyword output :  5
 
     
    