var的特点:存在变量声明提升;变量可以重复声明,前面的声明会被后面的声明覆盖;var在声明变量的时候,该变量是局部的。
let的特点:不存在变量提升,不可以在声明之前使用它,let声明变量前,该变量不能使用;不允许在同一个作用域中重复声明;命令所在的代码块内有效,局部有效。
const的特点:声明一个只读的变量,声明后,值就不能改变;不存在变量声明提升,不可以在声明之前使用它,不允许重复定义一个变量;let该有的特点const都有。
三者的区别:
var 声明是全局作用域或函数作用域,而 let 和 const 是块作用域。var 变量可以在其范围内更新和重新声明; 而let 变量是可以被更新但不能重新声明; const 变量既不能更新也不能重新声明。