循環作用域
在循環中使用 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 重新聲明變量是允許的: