004.ES2015和ES2016新特性--块级作用域变量

其基本原理就是JavaScript的作用域链,下面以对比的方式来展示一下函数级作用域和块级作用域。

函数级作用域

var fns = [];
for (var i = 0; i < 5 ; i++){
    //fns.push(() => {console.log(i)});
    fns.push(function(){
        console.log(i)
    })
}
fns.forEach(fn => fn());

运行结果是

5
5
5
5
5

块级作用域

var fns = [];
for (let i = 0; i < 5 ; i++){
    //fns.push(() => {console.log(i)});
    fns.push(function(){
        console.log(i)
    })
}
fns.forEach(fn => fn());

运行结果是

0
1
2
3
4
posted @ 2017-06-14 11:14  Gavin·Gong  阅读(319)  评论(0编辑  收藏