js 作用域

js 作用域主要有:全局作用域和局部作用域,es5之前没有块级作用域,es6有了块级作用域

何为块级作用域,块级作用域和局部作用域直接的区别是什么?

局部作用域是函数里面声明的变量,因为声明的变量用var声明,var有变量提升的原因,导致变量在函数内部子函数都处处可见。

块作用域由 { } 包括,if语句和for语句里面的{ }也属于块作用域。块级作用域在变量离开定义的块级代码后应该马上被回收。

if(true){

      var a = 5

}

console.log(a) // 5  可以访问到a


if(true){

      let  b = 5

}

console.log(b) // 报错

所以,es6之后有了块级作用域的概念

你可能感兴趣的:(js 作用域)