ES6新增了 let const 命令,用来声明变量。它的用法类似于 var  ,但是所声明的变量,只在 let const 命令所在的代码块内有效。

ES6 浅谈let与const 块级作用域之封闭空间(闭包)-LMLPHP

 var const 不允许重复声明

ES6 浅谈let与const 块级作用域之封闭空间(闭包)-LMLPHP

用处:
  ES6 浅谈let与const 块级作用域之封闭空间(闭包)-LMLPHP

  可能上一个例子在解释块级作用域封闭空间这一块有点模糊,那么下一个例子会很清晰的阐述这一理念。。。

  循环当中 i 的变化:

ES6 浅谈let与const 块级作用域之封闭空间(闭包)-LMLPHP

ES6 浅谈let与const 块级作用域之封闭空间(闭包)-LMLPHP

 如果要解决这个问题让它分别弹出0 、1、2  的话  我们在es5  是这样处理的:

ES6 浅谈let与const 块级作用域之封闭空间(闭包)-LMLPHP

ES6 浅谈let与const 块级作用域之封闭空间(闭包)-LMLPHPES6 浅谈let与const 块级作用域之封闭空间(闭包)-LMLPHPES6 浅谈let与const 块级作用域之封闭空间(闭包)-LMLPHP

 es6  是这样处理的:

ES6 浅谈let与const 块级作用域之封闭空间(闭包)-LMLPHP

分别弹出0、1、2。

总结: 块级作用域,其实就是 匿名函数立即调用。 其实块级作用域这一块有很多小特性比如:暂时性死区、不存在变量提升、可以是全局对象但和window无关等。我后续会继续将我的学习路程进行一个分享,如有不对还望指正。

05-08 08:42