首页 > 代码库 > js内存空间详细图解-自己总结
js内存空间详细图解-自己总结
原文出处http://mp.weixin.qq.com/s/NGqdjhoU3MR9LD0yH6tKIw
栈-先进后出
堆-类比成书于书架(形象),只要知道Key就可以找到value
基础数据类型(Undefind,Null,Boolean,String,Number),按值访问,直接操作实际值
引用数据类型,按址访问,实际值是保存在堆内存中的对象,我们操作的是在栈中与实际值相关联的地址。
例题解析:画图就好理解
var a = 20;
var b = a;// 这里其实就是把20赋值给了b,按值传递
b = 30;
var m = {a:10,b:20}// m在栈中只是保存了一个地址,假设是x00001,{a:10,b:20}是保存在堆中的
var n = m;// 这里其实把内存中一个地址赋给了n,把x00001赋给了n,
n.a = 15;// n.a操作的是堆中{a:10,b:20},所以m.a现在也被改变为了15
js内存生命周期
简单理解
1.分配内存
2.读写数据
3.释放内存
例子:
var a = 20;
alert(a+100);
a = null;// 释放内存空间
垃圾收集器会固定时间执行一次释放操作。
垃圾回收机制的原理,简单理解就是找到不在使用的值,释放内存。
a = null让a对应的值失去引用,在垃圾收集器下次执行时释放其占用内存空间。
减少全局变量定义,手动释放全局变量占用空间,提高性能
js内存空间详细图解-自己总结
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。