Appearance
1、var定义变量污染全局变量
let和const虽然没有污染全局但是还是可以跨越script标签
2、块级作用域
3、重复声明
let同一个作用域不能重复声明
4、暂时性死区 TDZ
let和const也会变量提升,只不过变量声明位置到变量提升位置之间会形成暂时性死区,在该区域内不能访问变量