作用域:
es5作用域:全局作用域,函数作用域
es6作用域:全局作用域,函数作用域,块级作用域(if、for等这些大括号里面)
变量在作用域之外是不能被访问的,访问的时候会报错说变量未定义,因为作用域之外生命周期结束了。
let
let :在块级作用域有效,在该块级作用域之外将不能被访问。
let :不存在变量提升(变量提升即将变量声明提升到它所在作用域的最开始的部分)。
let :声明的变量不能重复声明,不然会报错。
es6强制开始了严格模式,变量未声明不能使用,否则就会直接报错。
const
const :声明常量,在程序运行中不能直接
被修改,不然会报错。
const :声明的时候一定要赋值,不然会报错。
const :作用域和let一样。
const :如果声明了一个常量为json对象类型,那么这个常量里面的对象属性可以更改和添加。