视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
什么是js的栈堆
2020-11-27 20:12:40 责编:小采
文档


栈堆概念

Js中没有栈堆概念,引入它为了方便理解和更好的学习:

数据类型

基本类型数据叫做值类型,复杂类型又叫做引用类型

a.值类型,简单数据类型,在存储时,变量中存储的是值本身,因此叫做值类型。

b.引用类型,复杂数据类型,在存储时,变量存储的仅仅是地址,用其引用,因此称为引用数据类型。

栈堆空间分配概念

1.栈

由操作系统自动分配释放,存放函数的参数值,局部变量的值等,操作方式类似于数据结构中的栈。

2.堆

存储复杂类型(对象),一般由程序员分配释放,也可由垃圾回收机制回收,分配方式类似于链式表。

varx =5;
vary =6;
f1(x,y);
functionf1(a,b)
 {
a=a+1;
b=b+1;
console.log("a="+a);//a=6;
console.log("b="+b);//b=7;
}


第一步:预解析过程阶段,var 声明的变量以及函数全部提到顶部:

var x,
var y,
function f1(a,b){}

第二步:执行阶段:

x = 5;
y = 6;
f1(5,6)调用函数,执行函数体代码;
函数里面var a = 5;
var b = 6;
a = a+1;//6
b = b+1;//7
返回值

同理:复杂类型数据对象在栈堆同样的存储方式

下载本文
显示全文
专题