{"componentChunkName":"component---src-templates-blog-post-js","path":"/learn-about-the-js-memory-mechanism/","result":{"data":{"markdownRemark":{"html":"<h2>分数据类型进行存储</h2>\n<ul>\n<li>基本数据类型用栈存储\n<ul>\n<li>boolean</li>\n<li>null</li>\n<li>undefined</li>\n<li>number</li>\n<li>string</li>\n<li>symbol</li>\n<li>bigint</li>\n</ul>\n</li>\n<li>引用数据类型用堆存储</li>\n</ul>\n<p>原始类型的数据直接存储变量值，引用类型的数据存储引用地址，是因为引用类型有可能很大，那样的话存储太慢，内存空间占有太大，cpu耗时，所以需要在堆中存储引用地址</p>\n<p>对于系统栈来说，它的功能除了保存变量之外，还有创建并切换函数执行上下文的功能。</p>\n<p>所以如果采用栈来存储相对基本类型更加复杂的对象数据，那么切换上下文的开销将变得巨大！不过堆内存虽然空间大，能存放大量的数据，但与此同时垃圾内存的回收会带来更大的开销。</p>\n<p>借此我们也可以了解<strong>深拷贝</strong>的原理就是新建引用类型，存储新的指针，里面保存了一个一摸一样的对象，这样修改新对象不会影响到原对象</p>","timeToRead":1,"frontmatter":{"title":"了解js内存机制","date":"January 10, 2020","spoiler":null},"fields":{"slug":"/learn-about-the-js-memory-mechanism/"}}},"pageContext":{"slug":"/learn-about-the-js-memory-mechanism/","previous":{"fields":{"slug":"/hot-technology/"},"frontmatter":{"title":"热门技术"}},"next":{"fields":{"slug":"/powerful-grid-layout-scheme/"},"frontmatter":{"title":"强大的grid网格布局方案"}}}},"staticQueryHashes":["3649515864","63159454"]}