函数表达式---模仿块级作用域

1.js没有快级作用域的概念

    function a(){
        for(var i = 0;i <10;i++){

        }
        console.log(i)//10
    }
    a()//10;
c或者java中i只会在for循环中定义,for循环后就会被销毁,而js并不会,他会在for后任然可以被访问。

2.用于块级作用域(通常称为私有作用域)语法:

(function(){
    //这是块级作用域
})()
立即调用
第一个()为一个函数表达式
第二个()为调用
    function a(){
            (function(){
                for(var i = 0;i <10;i++){
                }   
            })(); 
            console.log(i)//"i is not defined"
        }
        a()//"i is not defined";
利用立即执行函数可以减少向全局变量添加变量和函数u,可以减少污染全局环境。并且可以减少闭包占用内存的问题,因为作用域会在执行完后立即销毁
    (function (){ 
        var a = "pppp"; 
        alert(a);
    })()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值