码迷,mamicode.com
首页 > Web开发 > 详细

js内存空间详细图解-自己总结

时间:2017-05-18 11:45:56      阅读:645      评论:0      收藏:0      [点我收藏+]

标签:http   bool   对象   读写   ber   定时   回收   内存   生命周期   

原文出处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内存空间详细图解-自己总结

标签:http   bool   对象   读写   ber   定时   回收   内存   生命周期   

原文地址:http://www.cnblogs.com/victory820/p/6871695.html

(1)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!