js的变量在内存中是怎样储存的,这个问题之前真的困扰我很久很久,我也是之前在B站某IT教程网站上解惑,该视频还是17年的老视频,不得不说真的没后悔花费我一整天看2017年的node.js教程。
一.基本数据类型的储存方式
首先思考下面代码的输出结果,
文章图片
没错,太简单了
文章图片
A ,B两个变量互不影响
二.引用数据类型的储存方式
接下来思考下面的代码
【JS数据类型在内存上的储存原理】
文章图片
首先obj2肯定是xxx,那么obj呢?没错,答案也是xxx,
文章图片
这是因为当我们在js定义了一个基本类型的时候,系统分配占内存来保存 变量名
&值
也就是key=value
,每一个基本类型都会分配到各自的空间,互不影响。
注意,到对象上就不一样了,在创建一个对象的时候,栈内存只会保留变量名称,而值却是系统分配这个对象在堆内存中的16进制的地址。栈内存的变量名像箭头指针一样指向了堆内存的那个对象!!!!
文章图片
如果下面这两行代码你能理解,那么说明你就已经知道了js数据类型的储存原理
1.
文章图片
2.
文章图片