一句话,let和const是var的改良版,能用const就不用let, 能用let就不用var。

1.let和const声明的变量时块级作用域,避免了无意中全局变量污染,更加的灵活安全。另一个好处就是在循环语句中,let关键字为每次循环绑定单独绑定一个变量。

2.let和const没有变量提升,提高了代码的可维护性。

3.let和const不可以重复定义变量,修复var可以重复定义变量,使得变量的定义不再随意任性。

4.let和const定义的变量不属于顶层对象。目的也是为了让变量定义更加自由灵活安全。

5.const声明一个常量的时候,一定要赋值。

6.const声明的常量并非真正意义上的常量,只保证变量名指向的地址不变,并不保证该地址的数据不变。