I have come across a very strange JavaScript code. Its execution result is completely different from what I expected. I want to know why.
var a = 1999;
{
console.log(a);
a = 2020;
function a() {}
a = 2021;
}
console.log(a); //Why 2020?