function foo():void{
if(true){
var bar:number=0;
}
console.log(bar);
}
foo();
相当于
function foo():void{
var bar:number;
if(true){
bar=0;
}
console.log(bar);
}
所有变量声明都移到了函数的顶部
ES6引入 let、const块作用域解决变量提升问题
function foo():void{
if(true){
let bar:number = 0;
bar = 1;
}
console.log(bar); //错误
}