为了转生而点技能-javascript,day2(杂记-记忆体的回收机制-Not Defined VS undefine

Not Defined VS undefined

undefined:
http://img2.58codes.com/2024/20143762i8AJ2Frthz.jpg

在创造阶段只有变数在记忆体里,而未赋予值,所以出现undefined的结果。

Not Defined
http://img2.58codes.com/2024/20143762ev4AgaL2wL.jpg

记忆体连变数都没有就会出现Not Defined。


记忆体的回收机制(Garbage collection)

本段是节录https://www.itread01.com/ 的「中高阶前端必须了解的」JS中的记忆体管理,并加上部分自己的理解而成,如有错误,仍请大大鞭策!!

定义:就是找出那些不再继续使用的值,然后释放其佔用的记忆体。

区域性变数: 就是不再需要使用的变数也就是生命週期结束的变数,区域性变数只在函式的执行过程中存在,当函式执行结束,没有其他引用(闭包),那么该变数会被标记回收。

function getData() {  var demoData = [];  for (var i = 0; i < 1000; i++) {    demoData.push(randomString(5000))  }  console.log(demoData); }getData()

var demoData在函式function getData里面,属于区域性变数;函式则依照记忆体堆叠先进后回收,后进先回收。


全域性变数:生命週期直至浏览器解除安装页面才会结束,也就是说全域性变数不会被当成垃圾回收。

        var demoData = [];        function getData() {            for (let i = 0; i < 1000; i++) {                demoData.push(randomString(5000))            }        }        getData()        console.log(demoData)

var demoData此时就是全域性变数,而且是放在记忆体的全域执行环境区。


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章