Hulk's Blog

文章
笔记

了解js内存机制

1/10/2020 • ☕️ 1 min read

分数据类型进行存储

  • 基本数据类型用栈存储
    • boolean
    • null
    • undefined
    • number
    • string
    • symbol
    • bigint
  • 引用数据类型用堆存储

原始类型的数据直接存储变量值,引用类型的数据存储引用地址,是因为引用类型有可能很大,那样的话存储太慢,内存空间占有太大,cpu耗时,所以需要在堆中存储引用地址

对于系统栈来说,它的功能除了保存变量之外,还有创建并切换函数执行上下文的功能。

所以如果采用栈来存储相对基本类型更加复杂的对象数据,那么切换上下文的开销将变得巨大!不过堆内存虽然空间大,能存放大量的数据,但与此同时垃圾内存的回收会带来更大的开销。

借此我们也可以了解深拷贝的原理就是新建引用类型,存储新的指针,里面保存了一个一摸一样的对象,这样修改新对象不会影响到原对象