var let const 的区别

104 阅读1分钟

1 只有var声明的变量存在变量提升,即变量可以在声明之前调用,值为undefined。 变量可以在声明之前调用就叫做变量提升。

2 var“不存在暂时性死区” letconst存在暂时性死区,只有等到声明变量的那一行代码出现,才可以获取和使用该变量。声明变量前,该变量都不可用,也就是大家常说的“暂时性死区。”

3 var不存在块级作用域,能够对一个变量进行多次声明,后面声明的变量会覆盖前面的变量声明。 (在函数中使用使用var声明变量时候,该变量是局部的。而如果在函数内不使用var,该变量是全局的) letconst存在块级作用域,在同一作用域不允许重复声明变量。

4 varlet可以修改声明的变量 而const声明一个只读的常量。一旦声明,常量的值就不能改变。(let可以重复赋值,const定义以后不能赋值 let声明的时候可以不赋值,const声明的时候必须赋值)