(1)var声明的变量有变量提升,let和const没有
(2)var是函数作用域,let和const是块级作用域
(3)var在全局作用域定义的变量会挂载在window上,let和const不会
(4)var未声明就赋值,表示全局变量,不会报错,let和const存在暂时性死区,未声明就使用会报错
(5)var在同一个作用域内可以对相同的变量进行多次声明,let和const不能
(6)const一旦声明就必须赋值,如果值是基本数据类型,不能改变常量的值,如果是值是引用数据类型,不能修改常量的地址指针