1、实现块作用域

2、不存在变量提升

ES6 明确规定,如果区块中存在​​let​​和​​const​​命令,这个区块对这些命令声明的变量,从一开始就形成了封闭作用域。凡是在声明之前就使用这些变量,就会报错。