javascript - let在循环中的使用
大家讲道理
大家讲道理 2017-04-11 13:19:28
[JavaScript讨论组]
for (let i = 0; i < 3; i++) {
  // let i = 'abc';
  console.log(i);
}

像上面的循环,会输出0、1、2
let是明确的不允许重复声明的
去掉注释后是下面这样,会输出3个abc我目前理解不明白,有人能够解释一下吗?

for (let i = 0; i < 3; i++) {
  let i = 'abc';
  console.log(i);
}
大家讲道理
大家讲道理

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

全部回复(4)
PHP中文网
for (let i = 0; i < 3; i++) {
  let i = 'abc';
  console.log(i);
}

等于

let i = 0;
for (; i < 3; i++) {
  let i = 'abc';
  console.log(i);
}

希望你能看出端倪。。

阿神

let 是不能在同一作用域上重复声明,但for里的条件语句和循环内部显然不是。

迷茫

两个作用域不同,所以可以重新声明

PHP中文网
// 只是觉得上面答案
// let i;
// 写在外面不太对,因为在for之外是访问不到的。

for (let i = 0; i < 3; i++){
  console.log(i);
  // for块级作用域,i可见
  {
  // let创建了一个新作用域
  let i = 'abc';
  console.log(i);}
}


Output:
0
"abc"
1
"abc"
2
"abc"
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

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