JS数据类型在内存上的储存原理

js的变量在内存中是怎样储存的,这个问题之前真的困扰我很久很久,我也是之前在B站某IT教程网站上解惑,该视频还是17年的老视频,不得不说真的没后悔花费我一整天看2017年的node.js教程。


一.基本数据类型的储存方式 首先思考下面代码的输出结果,
JS数据类型在内存上的储存原理
文章图片


没错,太简单了
JS数据类型在内存上的储存原理
文章图片

A ,B两个变量互不影响


二.引用数据类型的储存方式 接下来思考下面的代码
【JS数据类型在内存上的储存原理】JS数据类型在内存上的储存原理
文章图片


首先obj2肯定是xxx,那么obj呢?没错,答案也是xxx,
JS数据类型在内存上的储存原理
文章图片


这是因为当我们在js定义了一个基本类型的时候,系统分配占内存来保存 变量名&也就是key=value,每一个基本类型都会分配到各自的空间,互不影响。

注意,到对象上就不一样了,在创建一个对象的时候,栈内存只会保留变量名称,而值却是系统分配这个对象在堆内存中的16进制的地址。栈内存的变量名像箭头指针一样指向了堆内存的那个对象!!!!
JS数据类型在内存上的储存原理
文章图片

如果下面这两行代码你能理解,那么说明你就已经知道了js数据类型的储存原理
1.
JS数据类型在内存上的储存原理
文章图片

2.
JS数据类型在内存上的储存原理
文章图片

    推荐阅读