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

Not Defined VS undefined

  1. undefined:
    https://ithelp.ithome.com.tw/upload/images/20211120/20143762i8AJ2Frthz.jpg

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

  2. Not Defined
    https://ithelp.ithome.com.tw/upload/images/20211120/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此时就是全域性变数,而且是放在记忆体的全域执行环境区。


<<:  【大学教的统计学】名词解释-基础篇

>>:  CLOUDWAYS主机限时6折优惠码,只到2021/12/1

Progressive Web App 定期背景同步 (19)

什麽是 Periodic Background Sync API 透过在 service worke...

DAY5 Python基础教学(二)

DAY5 Python基础教学-List 前言 List结构非常重要,它跟C语言中的array很像,...

[Day 08] 简单的单元测试实作(二)

接下来我们做第二个测试,我们传入一个数字, 譬如说我们传入4, 因为它是4的倍数, 所以应该是闰年,...

会员管理网站实作篇 - (以律师谘询平台为例子) part 2

大纲 sitemap 架构 安装 Ultimate Member plugin UM三大表单 实作律...

Day9 - 期货contract及读取报价方式

今天要讲的是期货合约的相关函数。 首先是Contracts函数,就像之前文章里有使用到的一样,透过C...