简介
低级语言,比如C,有低级的内存管理基元,想malloc(),free()。另一方面,JavaScript的内存基元在变量(对象,字符串等等)创建时分配,然后在他们不再被使用时“自动”释放。后者被称为垃圾回收。这个“自动”是混淆并给JavaScript(和其他高级语言)开发者一个错觉:他们可以不用考虑内存管理。
内存生命周期
不管什么程序语言,内存生命周期基本一致:
1.分配你所需要的内存
2.使用它(读、写)
3.当它不被使用时释放 ps:和“把大象装冰箱“一个意思
第一二部分过程在所有语言中都很清晰。最后一步在低级语言中很清晰,但是在像JavaScript等高级语言中,最后一步不清晰。
JavaScript的内存分配
变量初始化
为了不让程序员为分配费心,JavaScript在定义变量时完成内存分配。
var o = {
a: 1,
b: null
}; // 为对象及其包含变量分配内存
var a = [1, null, \"abra\"]; // 为数组及其包含变量分配内存(就像对象)
function f(a){
return a + 2;
} // 为函数(可调用的对象)分配内存
// 函数表达式也能分配一个对象
someElement.addEventListener(\'click\', function(){
someElement.style.backgroundColor = \'blue\';
}, false);
本文地址:https://www.stayed.cn/item/17104
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我