今天偶然翻到了js中解釋閉包一道經典的題目,如下:


看到這個大家應該都很熟悉,不管點選哪個,最後打印出來的結果都是3。

這個閉包的問題網上有很多解釋,我就不詳細的闡述了,今天想講的是ES6的let關鍵字在js中的執行問題。

當我這樣的時候:

 

在瀏覽器開啟控制檯的時候會出現這樣的情況:


大概的意思就是(let,包括後面那幾個)不支援嚴格模式之外的模式,簡言之就是隻能在嚴格模式下才能執行。

於是,我們可以這樣:


結果就變成了我們想要的這樣:



以上僅供參考,不正之處望指出。