美文网首页
2018-07-03

2018-07-03

作者: dsying | 来源:发表于2018-07-03 13:06 被阅读0次

内存图

  1. JS 引擎将内存分为代码区和数据区
  2. 我们只研究数据区
  3. 数据区分为 Stack(栈内存) 和 Heap(堆内存)
  4. 简单类型的数据直接存在 Stack 里
  5. 复杂类型的数据是把 Heap 地址存在 Stack 里

内存图是个什么鬼?

基本类型(number,string,boolean,null,undefined,symbol)的值存放在栈内存中
复杂类型(object),对象放在堆内存中,对象的地址存放在栈内存中,地址指向对象,保存地址的变量称之为
对象的引用 例: var a = {name:'a'}; a为对象{name:'a'}的引用,a中存的是对象的地址

用几道题来理解内存图

题目1


01.png

题目2


02.png

题目3(有点难)

a.x = a = {n:2}
//对象{n:2}的地址为54,a={n:2};则a保存的地址由34变为54
//a.x = a = {n:2}==> 34.x = 54 = {n:2}
03.png

什么是垃圾回收

如果一个对象没有被引用,它就是垃圾,将被回收
如同一个没有梦想的人,就是咸鱼,将被淘汰

04.png

例1


05.png

例2

function fn(){}
document.body.onclick=function(){
  fn()
}
06.png

相关文章

网友评论

      本文标题:2018-07-03

      本文链接:https://www.haomeiwen.com/subject/ptbduftx.html