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); //错误
}
本文探讨了JavaScript中变量提升的概念及其带来的问题,并通过ES6引入的let和const关键字解决了这些问题。展示了如何使用这些关键字创建块级作用域,避免变量提升导致的潜在错误。
761

被折叠的 条评论
为什么被折叠?



