2019-02-15 let var的区别

var变量的作用域在一个函数中,就算有(if、for)代码段,变量声明也会在函数执行前移动到函数的顶端,

function foo(): void{
  if(true){
    var bar: number=0;  // 作用域为函数内,装载阶段声明,执行阶段赋值
  }
  alert(bar);  // 此处不会报错  // 执行阶段,输出值
}

let关键字允许我们将作用域设置在代码段(if、while、for等)

function foo():void{
  if(true){
    let bar:number=0;  // 只会在 if 内被访问,不会提升到函数的顶端
  }
  alert(bar);  // error
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容