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
。也许是因为吊装。但据我所知,函数声明没有词法作用域,即使有,第一个输出也应该打印该函数,对吧?
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)