ES6的let命令

1.let命令所在的代码块内有效;

2.循环的计数器,就很合适使用let命令;(for循环还有一个特别之处,就是循环语句部分是一个父作用域,而循环体内部是一个单独的子作用域。)

例如:如下会输出十次sophie,表明for内部的i与循环里面的i不是通一个值

for (let i = 0; i < 10; i++) {
  let i = 'sophie';
  console.log(i);
}
3.let声明的变量一定要在声明后使用,否则报错,这一点区别于var(var声明的变量可以再声明之前使用,提示的是undefined,即我们常说的变量提升)。
4.使用了let声明的变量会绑定该区域,不受外部的影响。(const也是如此)
例如:(如下报错的原因是let声明了tmp,但是声明发生在了temp赋值之后,而使用了let的区域发生了局部死缓)
var tmp = 123;
if (true) {
  tmp = 'abc'; // ReferenceError
  let tmp;
}
5.let不允许在相同作用域内,重复声明同一个变量。
原文地址:https://www.cnblogs.com/sophiehui/p/6520311.html