(function (a){
console.log(a)
var a=10;
console.log(a)
})(100);
结果: 100
10
(function (a){
console.log(a)
var a=10;
})();
结果:undefined
(function (a){
console.log(a)
var a=10;
function a(){}
console.log(a)
})(100);
结果: ƒ a(){}
10
(function (a){
console.log(a)
a();
var a=10;
function a(){ console.log(a)}
console.log(a)
a();
})(100);
结果:ƒ a(){ console.log(a)}
ƒ a(){ console.log(a)}
10
Uncaught TypeError: a is not a function
(function (a){
console.log(a)
a();
var a=10;
function a(){
var a = 8
console.log(a)
}
console.log(a)
})(100);
结果 :a(){
var a = 8
console.log(a)
}
8
10
函数声明提升会覆盖变量声明提升,但不会覆盖变量赋值