if (true) {
function a() {}
a=1
console.log('in',a);// in 1
}
console.log('out',a);// out f a(){}
if (true) {
a=1
function a() {}
console.log('in',a);// in 1
}
console.log('out',a);// out 1
我的理解上 function a() {}都应该提升到最上面,然后再执行 a=1,但是为什么两次的 out 的结果会不一样,第一次的 out 的 a 是什么时候被赋值为 f a(){}的,第二次的 out 又是什么时候被赋值为 1 的,和 if{}块有什么关系么