var a;
{
function a() {}
a = 60;
console.log('1: ', a);
}
console.log('2: ', a);
var b;
{
b = 60;
function b() {}
console.log('3: ', b);
}
console.log('4: ', b);
输出为:
1: 60
2: f a() {}
3: 60
4: 60
我不知道为什么,如果除去花括号,它们都将打印60
。也许是因为吊装。但是据我所知,函数声明没有词法范围,即使有,它的第一个输出也应该打印出函数,对吧?