前言
在javascript中,我们都知道使用var来声明变量。javascript是函数级作用域,函数内可以访问函数外的变量,函数外不能访问函数内的变量。
函数级作用域会导致一些问题就是某些代码块内的变量会在全局范围内有效,这我们是非常熟悉的:
for (var i = 0; i < 10; i++) {
console.log(i); // 0,1,2...,9
}
console.log(i); //10
if(true){
var s = 20;
}
console.log(s); //20
在es6中增加了let(变量)和const(常量)来声明变量,使用的是块级作用域,变量声