javascript - ES6中let在for循环中的疑惑?
大家讲道理
大家讲道理 2017-05-19 10:14:43
[JavaScript讨论组]



如图,上图说明i已经被声明了,也就是不可以重复声明;而下图中却能用let重新声明,为什么?

大家讲道理
大家讲道理

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

全部回复(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);
    }
}
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号