let 的「创建」过程被提升了,但是初始化没有提升。
var 的「创建」和「初始化」都被提升了。
function 的「创建」「初始化」和「赋值」都被提升了。
最后看 const,其实 const 和 let 只有一个区别,那就是 const 只有「创建」和「初始化」,没有「赋值」过程。
所谓暂时死区,就是不能在初始化之前,使用变量。
https://segmentfault.com/a/1190000014401234
https://www.infoq.cn/article/es6-in-depth-let-and-const/
var messages = ["喵!", "我是一只会说话的猫!", "回调(callback)非常有趣!"];
for (var i = 0; i < messages.length; i++) {
setTimeout(function () {
alert(messages[i]);
}, i * 1500);
}