JavaScript内存管理介绍
简介
低级语言,比如C,有低级的内存管理基元,想malloc(),free()。另一方面,JavaScript的内存基元在变量(对象,字符串等等)创建时分配,然后在他们不再被使用时“自动”释放。后者被称为垃圾回收。这个“自动”是混淆并给JavaScript(和其他高级语言)开发者一个错觉:他们可以不用考虑内存管理。
内存生命周期
不管什么程序语言,内存生命周期基本一致:
1.分配你所需要的内存
2.使用它(读、写)
3.当它不被使用时释放 ps:和“把大象装冰箱“一个意思
第一二部分过程在所有语言中都很清晰。最后一步在低级语言中很清晰,但是在像JavaScript等高级语言中,最后一步不清晰。
JavaScript的内存分配
变量初始化
为了不让程序员为分配费心,JavaScript在定义变量时完成内存分配。
varn=123;//给数值变量分配内存 vars="azerty";//给字符型
varo={ a:1, b:null };//为对象及其包含变量分配内存
vara=[1,null,"abra"];//为数组及其包含变量分配内存(就像对象) functionf(a){ returna+2; }//为函数(可调用的对象)分配内存
//函数表达式也能分配一个对象 someElement.addEventListener('click',function(){ someElement.style.backgroundColor='blue'; },false);