let和const

小母鸡叽叽叽IP属地: 贵州
字数 82阅读 522
  1. 思考, 下面的代码为什么会输出不一样的结果?
for(var i = 0; i< 2; i++){
  setTimeout(function(){
    console.log(i)
  }, 100)
}
// 输出 2, 2

for(let i = 0; i<  2; i++){
  setTimeout(function(){
    console.log(i)
  }, 100)
}
// 输入 0, 1
  1. {}在es6中会生成一个块级作用域
  2. let/const 声明的变量会绑定当前的作用域,不受外部影响。
  3. for每一次循环, 会创建一个块级作用域。

上面的代码相当于

{   
    let i = 0;
    setTimeout(function () {
        console.log(i)
    }, 100)
}
{
    let i = 1;
    setTimeout(function () {
        console.log(i)
    }, 100)
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
0人点赞
更多精彩内容,就在简书APP
"小礼物走一走,来简书关注我"
还没有人赞赏,支持一下
小母鸡叽叽叽从来不会让合作伙伴加班<br>框架级代码<br>
总资产21共写了1.1W字获得1,330个赞共1,715个粉丝

推荐阅读更多精彩内容