【ES6】说说var,let,const之间的区别

128 阅读1分钟
  • 变量提升-->var存在变量提升,即变量的值可以在声明之前调用(值为undefined),let和const不存在变量提升

  • 暂时性死区-->var不存在暂时性死区,let和const存在暂时性死区,只有等到变量声明的那一行代码出现,才可以获取和使用变量

  • 块级作用域-->var不存在块级作用域,用var声明的变量既是全局变量,也是顶层变量(ES5中顶层变量和全局变量是等价的),let和const存在块级作用域

  • 重复声明-->var允许重复声明,let和const在同一作用域下不允许重复声明

  • 修改声明的变量-->var和let可以修改声明的变量,const不允许修改声明的变量

  • 使用-->能用const的情况尽量使用const,其他情况下大多数使用let,避免使用var