| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 897 人关注过本帖
标题:求教一个问题,关于for的块作用域
只看楼主 加入收藏
xuegao123
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2022-7-14
收藏
 问题点数:0 回复次数:1 
求教一个问题,关于for的块作用域
按照我的理解,以下两个代码实现的功能应该是一样的,为啥输出不一样:
代码一:
程序代码:
for (let i=0;i<=1;i++)
{
    setTimeout(()=>{console.log(i)},1000)
}
//output: 0 1


代码二:
程序代码:
{
    let i=0
    {
        setTimeout(()=>{console.log(i)},1000)
    }
    i++
    {
        setTimeout(()=>{console.log(i)},1000)
    }
}
//output: 1 1
搜索更多相关主题的帖子: for 作用域 i++ console 代码 
2022-07-14 15:52
claver
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2022-8-15
收藏
得分:0 
i 的作用域不一样,
代码二中的 i 相对于代码
程序代码:
{
    setTimeout(()=>{console.log(i)},1000)
}


而言,是外部变量,你需要这样才能得到一样的结果:
程序代码:
{
    {
        let i=0
        setTimeout(()=>{console.log(i)},1000)
    }
    {
        let i = 1
        setTimeout(()=>{console.log(i)},1000)
    }
}
2022-08-15 17:45
快速回复:求教一个问题,关于for的块作用域
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.010931 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved