函数提升优于变量提升。函数提升会把整个函数挪到作用域顶端,而变量提升只会把声明挪到作用域顶端var有提升,我们可以在声明之前使用。let、const存在暂时性死区,不能在声明之前使用var在全局作用域下声明变量会把变量挂在到window上,let、const不会let和const作用基本一致,const声明的变量不能再次被赋值