javascript - Verwirrt über die Let-in-for-Schleife in ES6?
大家讲道理
大家讲道理 2017-05-19 10:14:43
0
2
517



Wie im Bild oben gezeigt, zeigt das Bild oben, dass ich deklariert wurde, das heißt, es kann nicht wiederholt deklariert werden, aber im Bild unten kann es mit let erneut deklariert werden. Warum?

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

Antworte allen(2)
曾经蜡笔没有小新

为什么let能重复声明? 图示


关于let声明跟var声明为什么会冲突? 首先 var 声明会提升到当前作用的顶端,即顺序是这样的:

  1. var i

  2. 才是开始走for循环

  3. 才开始解析 let i = 0 --->报错
    再看图

滿天的星座
// for是一个区块,内部又是一个小区块,你的代码可以简写为
{
    let i = 0;  // i作用于这个大区块
    {
        var i = 'abc';  // 此处的i也作用于这个大区块
        console.log(i);
    }
}

{
    let i = 0; // i作用于这个大区块
    {
        let    i = 'abc'; // i作用于这个小区块
        console.log(i);
    }
}

// 如果你这么写是可以的
for (var i = 0; i < 3; i++) {
    let i = 'abc';
    console.log(i);
}
// 简写
{
    var i = 0; // i作用于这个大区块
    {
        let    i = 'abc'; // i作用于这个小区块
        console.log(i);
    }
}
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage