JS 基础之内存图

计算机内存分配

1

    现代的计算机内存配置一般至少8G起步。 操作系统开机即占用512MB、chrome打开即占用1G内存、Chrome各每个网页分配一定数量的内存,这些内存要分配给页面渲染器、网络模块、浏览器外壳和JS引擎(V8引擎)、JS引擎将内存分为代码区和数据区。下面只讲解,JS内存。

JS内存图:

2

    JS内存分为代码区和数据区,代码区是存放代码的,数据区是存放数据的。我们只研究数据区,数据区分为Stack(栈内存)和Heap(堆内存),简单类型的数据直接存放在Stack里,复杂类型的数据是把Heap地址存放在Stack里。

    JS内存听起来就觉得比较抽象,下面根据几个示例和JS内存图来理解会比较好些:

例1:

var a = 1

var b = 2

var o = {

    name: 'frank',

    age: 18

}

var c = true

o.gender = 'male'

var o2 = {name: 'Jack'}

o2 = o

它的内存图为:

3

例2:

var a = 1

var b = a

b = 2

a = ?

JS内存图为:

4

例3:

var a = {name: 'a'}

b = a

b = {'name': 'b'}

a.name = ?

JS内存图为: 

5

例4:

var a = {name: 'a'}

var b = a

b = null

a = ?

JS内存图为:

6

典型的面试题内存图解析:

7

你可能感兴趣的:(JS 基础之内存图)