16_函数(【七】垃圾收集和块级作用域的概念)

    javascript是一门具有自动垃圾收集机制的编程语言。开发人员不必关心内存分配和回收问题。
    离开作用域的值将被自动标记为可以回收,因此将在垃圾收集期间被删除。标记清除是目前主流的垃圾收集算法。这种算法的思想是给当前不使用的值加上标记,然后回收其内存。

//js的垃圾回收机制(了解) 方法1 标记法,2引用计数法  常用标记法

function test(){
    var a = 10; //被使用
    var b = 20; //被使用
    var c ;
}

test(); //执行完毕之后 a b c都被释放

    javascript里面没有块级作用域的概念,和C、JAVA等高级语言不同。所以在使用if、for时候要格外的小心

//块级作用域
//高级语言中的 for if等语句存在块级作用域的概念,在js中不存在块级作用域的概念
function fn1(){
    for(var i=0; i<5; i++){
        // do something
    }
    console.info(i); //6
}

fn1();

    javascript模拟块级作用域

//在js中要使用匿名函数的方式模拟块级作用域
function fn2(){
    (function(){
        for(var i=0; i<5; i++){
        // do something
        }
    })();
    //console.info(i); //此处会出错 ReferenceError: i is not defined
}

fn2();

    函数的自动执行

(function(){
    console.info("我直接执行了!!");
})();

转载于:https://my.oschina.net/u/2317126/blog/382220

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值