在ES6出现之前,我们都是使用var这个关键字来声明一个变量的,但是其弊端非常多。因此,在学习let和const之前,必须先了解一下var。var有以下两个特点。
- 无块级作用域
- 存在变量提升(Hoisting)
1.无块级作用域
在ES5中,作用域一般划分为全局作用域和局部作用域。其中,局部作用域也叫“函数作用域”。ES6新增了块级作用域的概念,块级作用域就是通过let或const来体现的。那么块级作用域究竟是怎样的呢?举个简单的例子,我们都知道条件语句、循环语句等是使用大括号“又”来进行代码块处理的。如果存在块级作用域,那么“B”内部定义的变量,在“0”外部是没办法访问到的;如果不存在块级作用域,那么“0”内部定义的变量,在“0”外部是可以访问得到的。对于块级作用域,用最简单的一句话来说就是,如果一门语言存在块级作用域,那么一对大括号定义的就是一个块级作用域。
...大约 3 分钟
