JS中的存储机制

一、堆和栈的介绍

     1、堆和队,是先进先出;栈,是先进后出,就跟水桶差不多;

     2、存储速度:堆和队的存储速度较慢,栈的存储速度较快,会自动释放;

二、js中存储的类型

     1、堆,一般用于复杂数据类型,存储速度较慢,例如js中的数组对象,object对象;

     2、栈,主要存放一些基本类型的变量和对象的引用,栈内的数据是可以共享; 栈中new 出来的,不用共享,占用新的空间。

三、js 中垃圾的回收机制

       js中的堆不需要程序代码得来显示释放,浏览器垃圾回收的基本原则:如果栈中不存在对堆中某个对象的引用,那么就认为该对象不再需要,在垃圾回收时就会清除该对象占用的内存空间。

          js中最常用的方法是,围棋赋值为null。

四、堆和栈中string的使用

var str=new String('abc'); 存在堆中,速度较慢,不能共享;
var str='abc';存在栈中,速度较快,可共享;

最后一个,str1与str2 的指向不一样,指向的不是同一对象,不是引用的同一数据。


原文地址:https://www.cnblogs.com/leyan/p/8464777.html