javascript的内存管理
<div id="cnblogs_post_body"> 介绍低层次的语言,如C,具有低级别的内存管理命令,如:malloc()和free(),需要开发者手工释放内存。然而像javascript这样的高级语言情况则不同,对象(objects, strings 等)创建的时候分配内存,当他们不在使用的时候内存会被自动回收,这个自动回收的过程被称为垃圾回收。因为垃圾回收的存在,让javascript等高级语言开发者产生了一个错误的认识,以为可以不用关心内存管理。
内存生命周期
不管什么样的编程语言,内存的生命周期基本上是一致的。
[*]分配你需要的内存
[*]使用他进行读写操作
[*]当内存不需要的时候,释放资源
步骤1和步骤2对于所有语言都一样,能明显觉察到。至于步骤3,低级别语言需要开发者显式执行。而对于像javascript这样的高级语言,这部分操作是交给解析器完成的,所以你不会觉察到。
javascript中的分配操作
值的初始化
在为变量赋值的时候,javascript会完成内存的分配工作。
<div class="cnblogs_code">var n = 123; // 为数字分配内存var s = "azerty"; // 为字符串分配内存 var o = {a: 1,b: null}; // 为包含属性值的object对象分配内存 var a = ; // 为包含值的数组分配内存 function f(a){return a + 2;} // 为函数分配内存(函数是可调用的对象) // 函数表达式同样也是对象,存在分配内存的情况someElement.addEventListener('click', function(){someElement.style.backgroundColor = 'blue';}, false);
页:
[1]