下一站永远 发表于 2013-1-4 02:47:57

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]
查看完整版本: javascript的内存管理