主要有三点。
#1
var声明 的变量,其作用域是全局作用域或函数作用域
let和const是块作用域
//全局作用域:全局形式定义过的var变量全局位置都可用
//函数作用域:函数内部定义的var变量仅在函数内可用
//块作用域:let和const变量如果在{}花括号内声明,在{}外部则不可用,而var变量则可用
#2
var变量可以更新和重新声明
let变量可以更新但不能重新声明
const变量既不能更新也不能重新声明
#3
在变量提升方面,它们都被提升到了作用域顶部。但是var变量会被初始化为undefined,而let和const不会被初始化。
//变量提升:在代码执行前,将变量声明和函数声明提升到当前作用域的顶部。只提升声明,不提升赋值。