今天讲解比较简单,主要学习ES6的let和const。让大家牢固一下基础知识。
在讲解之前让我们先来了解一个知识点:什么叫做块级作用域?
**
1. 块级作用域
**
名称 | 含义 |
---|---|
块级作用域 | 任何一对花括号中的语句集都属于一个块,在这之中定义的所有变量在代码块外都是不可见的 |
- 在ES6之前,是没有块级作用域这一说的,例如:
for(var i = 0; i < 10; i++) {
console.log(1);
}
console.log(i);
你可能会觉得在console.log(i)
里面无法访问到i变量,但是实际上最外面会输出10,这是由于在js内部会造成变量提升。同时也说明了ES6之前是没有块级作用域的。一般往往通过创建立即执行函数来达到与块级作用域相同的目的。
- 那么ES6的到来,解决了这一问题:let和const为我们带来了块级作用域。这意味着它只能在代码块内才能访问到,出了代码块就会抛出异常了,还有一点重要的是,let和const不会造成变量提升。