众所周知,在ES6之前,JavaScript是没有块级作用域的,如下图所示: 学过其他语言的同学肯定有点诧异,为什么会这样呢?因为js还是不同于其他语言的,在ES5中,只有全局作用域和函数作用域,并没有块作用域,当然我们可以实现块作用域的功能.看下面代码: 在这段段代码中,我们使用立即执行函数(IIFE)创建了一个局部函数来模仿块级作用域.在ES5时代,JavaScript的作用域只有用全局作用域和局部作用域的说法.到了ES6时代,块级作用域的登场. 一.关于ES5时代 1.变量提升 说到js的…