1 只有var声明的变量存在变量提升,即变量可以在声明之前调用,值为undefined。
变量可以在声明之前调用就叫做变量提升。
2 var“不存在暂时性死区” let和const存在暂时性死区,只有等到声明变量的那一行代码出现,才可以获取和使用该变量。声明变量前,该变量都不可用,也就是大家常说的“暂时性死区。”
3 var不存在块级作用域,能够对一个变量进行多次声明,后面声明的变量会覆盖前面的变量声明。
(在函数中使用使用var声明变量时候,该变量是局部的。而如果在函数内不使用var,该变量是全局的)
let和const存在块级作用域,在同一作用域不允许重复声明变量。
4 var和let可以修改声明的变量
而const声明一个只读的常量。一旦声明,常量的值就不能改变。(let可以重复赋值,const定义以后不能赋值
let声明的时候可以不赋值,const声明的时候必须赋值)