JS高级—02—内存管理
一、认识内存管理
二、js的内存管理
结合上篇文章的调用栈,应该是在代码编译阶段,就分配好了内存;
三、js的垃圾回收
(1)垃圾回收
(2)常见的gc算法
四、闭包
以前可能理解错了,
- go除了var定义的变量名还有function定义的函数名,只是变量名都是undefiend在mianScript执行才会被赋值,而函数名已经执行和fo的内存地址;(这样对应了,基本数据类型的变量都是直接在栈中赋值,引用数据类型的变量在栈中赋值堆里的内存地址;)
- ao应该是函数被压入ecs调用栈时才创建,而不是编译阶段就创建;(课三1‘10’‘)
什么是闭包?
主要是一个子函数(即一个函数return的函数),一直引用着父函数或者父极环境的变量,这种就是闭包;由于子函数一直引用着,即使父函数已经不在调用栈中,父函数的ao对象都不能在堆中释放,会造成内存浪费内存泄漏;
老师的第三节课主要通过gofoao的原理执行方式,告诉我们闭包;