开机 把操作系统读到内存中
内存分配:
image.png
数据存储
数字64位
字符16位
Stack栈 Heap堆
值 简单 存stack //string,除了object
复杂 存heap,地址存在stack(引用) //object,string都可以
一些面试题
1.var a
a = {self: a} //a.self == undefinded
2.var a = {n:1};
var b = a;
a.x = a = {n:2};
alert(a.x); //undefined
alert(b.x); //[object object]
垃圾回收
如果一个对象没有被引用———垃圾,将被回收
离开作用域的值将被自动标记为可以回收,将在垃圾收集期间被删除
回收需要消耗cpu
垃圾收集方式:标记清除,引用计数
将之后不需要使用的变量设为null,解除引用可优化内存占用
面试题:
var fn = function(){}
document.body.onclick = fn
fn = null
function(){}是垃圾吗? 不是
image.png
深拷贝、浅拷贝
1.基本类型赋值都是深拷贝
2.复杂类型才分深拷贝和浅拷贝
image.png image.png
image.png
网友评论