js

差异:

变量提升

  • var声明的变量存在变量提升,即变量可以在声明之前调用,值为undefined
  • let和const不存在变量提升,即它们所声明的变量一定要在声明后使用,否则报错

暂时性死区

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

块级作用域

重复声明

使用习惯

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