var、let、const 三者区别可以围绕下⾯五点展开:
var 声明的变量存在变量提升,即变量可以在声明之前调⽤,值为 undefined
let 和 const 不存在变量提升,即它们所声明的变量⼀定要在声明后使⽤,否则报错
var 不存在暂时性死区
let 和 const 存在暂时性死区,只有等到声明变量的那⼀⾏代码出现,才可以获取和使⽤该变量
var 不存在块级作⽤域
let 和 const 存在块级作⽤域
var 允许重复声明变量
let 和 const 在同⼀作⽤域不允许重复声明变量
var 和 let 可以
const 声明⼀个只读的常量。⼀旦声明,常量的值就不能改变
能⽤ const 的情况尽量使⽤ const ,其他情况下⼤多数使⽤ let ,避免使⽤ var