循环作用域
在循环中使用 var:
实例,循环中使用 var 重新声明了循环之外的变量 i。

在循环中使用 let:
在循环中变量使用 let 并没有重新声明循环外的变量。
即循环中用 let 声明了变量 i,那么只有在循环内,变量 i 才是可见的。
函数作用域
在函数内声明变量时,使用 var 和 let 很相似。
全局作用域
在块外声明声明,那么 var 和 let 也很相似。
重新声明
例1,允许在程序的任何位置使用 var 重新声明 JavaScript 变量。
例2,在相同的作用域或相同的块中,通过 let 重新声明一个 var 变量是不允许的。
例3,在相同的作用域,或相同的块中,通过 let 重新声明一个 let 变量是不允许的:
例4,在相同的作用域,或相同的块中,通过 var 重新声明一个 let 变量是不允许的:
例5,在不同的作用域或块中,通过 let 重新声明变量是允许的: