1.变量提升
var 存在变量提升,let const没有变量提升
变量提升就是变量能在声明前使用
2.块级作用域
let const 具有块级作用域,var 不具有
块级作用域就是作用域在{}里面
3.重复声明
var 在声明变量时是可以重复声明的,const let 不允许
可以重复声明就是允许后来声明的变量和之前声明的变量同名,后声明的同名变量会覆盖之前声明的变量
4.暂时性死区
let const 变量有暂时性死区,var 的变量不存在暂时性死区
暂时性死区是指在变量声明之前,该变量都是不可使用的
5.指针指向
var let 可以修改指针指向(重新赋值),const 不可以
6.设置初始值
在声明变量的时候,var let 可以不设初值,const 必须设置初值
7.全局变量
var 声明的变量是全局变量,var声明的变量会被添加到全局对象的属性中,let const 声明的变量则不会