ES6作用域

//ES5中的作用域
var callbacks=[];
for(var i=0;i<=2;i++){
callbacks[i]=function(){
return i*2;//闭包,函数里面是一个表达式,而不是一个值,i为全局,到最后i为3的时候才执行
}
}
console.table([
callbacks[0]();//6
callbacks[1]();//6
callbacks[2]();//6
])
// 如果用 let 声明 i,有一个块作用域,这个时候的闭包取决于当前的块作用域,每循环一次就生成一个新的作用域,这个闭包就导向闭包作用域里面的变量。

//在ES6中只要使用{}就能指定一个块作用域
{
function foo(){
return 1;
}
console.log("foo()==1",foo()==1);//true;
{
function foo(){
return 2;
}
console.log("foo()==2",foo()==2);//true;
}
console.log("foo()==1",foo()==1);//true;
}

//在ES5中 立即执行函数((function(){
const foo=function(){
return 1;
}
console.log("foo()==1",foo()==1);//true;

((function(){
const foo=function(){
return 2;
}
console.log("foo()==2",foo()==2);//true;
})())
})())


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值