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("我直接执行了!!");
})();