JS学习之生命周期与垃圾回收机制

生命周期
变量或者函数在相应的作用域里存在的时间
局部变量和局部函数:不再使用就是生命周期的结束,在函数内声明,当函数执行完毕后,这个变量就不存在了
全局变量和全局函数:当声明完成以后在整个页面中都可以用,当页面关闭的时候生命周期结束
垃圾回收机制

变量或者函数存在于内存当中,变量在使用完以后,没有在其他地方在使用就会被清除用来释放内存。垃圾回收机制会按照固定的时候周期性的执行

 1        function test(){
 2               var n=10;  // 在函数内声明,局部变量,在函数外面是访问不到的
 3               function  child(){  //局部函数,在函数外面是访问不到的
 4                   n++;
 5                   console.log(n);
 6               }
 7               child();
 8          }
 9          test(); // 11 这就是一个闭包环境,满足了函数嵌套函数子函数访问父函数的变量
10          // test() 函数在执行完成之后,变量n在其他地方没有使用,在函数执行完之后n会被垃圾回收机制回收,重新调用函数的时候,              n 会被重新声明
11          test(); // 11
12         // console.log(n);  报错
13         //  child();  报错

原文地址:https://www.cnblogs.com/xubj/p/9875363.html

时间: 2024-07-29 15:53:38

JS学习之生命周期与垃圾回收机制的相关文章

6、对象生命周期和垃圾回收基础

掠过架构化异常处理不谈,接下来主要介绍CLR怎样通过垃圾回收来管理已分配的类实例(对象).C#程序员从来不直接在内存中删除一个托管对象,相反,.net对象被分配到了一块叫做托管堆的内存区域上,到了某个时候他们被垃圾回收期自动销毁. 及时释放内部非托管资源:使用System.Object.Fimalize()虚方法和IDisposable接口. .net4垃圾回收器的新功能:后台垃圾回收和使用System.Lazy<>泛型实现的延迟实例化. 第一个问题,类.对象和引用. 类是一个蓝图,描述这个类

Vue.js学习之生命周期

每个 Vue 实例在被创建之前都要经过一系列的初始化过程.例如,实例需要配置数据观测(data observer).编译模版.挂载实例到 DOM ,然后在数据变化时更新 DOM .在这个过程中,实例也会调用一些 生命周期钩子 ,这就给我们提供了执行自定义逻辑的机会.例如,created 这个钩子在实例被创建之后被调用: var vm = new Vue({ data: { a: 1 }, created: function () { // `this` 指向 vm 实例 console.log(

【Vue.js学习】生命周期及数据绑定

一.生命后期 官网的图片说明: Vue的生命周期总结 var app = new Vue({ el:"#app", beforeCreate: function(){ console.log('1-beforeCreate 初始化之前'); //加载loading }, created: function(){ console.log('2-created 创建完成'); //关闭loading }, beforeMount: function(){ console.log('3-be

JS高程中的垃圾回收机制与常见内存泄露的解决方法

起因是因为想了解闭包的内存泄露机制,然后想起<js高级程序设计>中有关于垃圾回收机制的解析,之前没有很懂,过一年回头再看就懂了,写篇博客与大家分享一下. #内存的生命周期: 分配你所需要的内存: 由于字符串.对象等没有固定的大小,js程序在每次创建字符串.对象的时候,程序都会分配内存来存储那个实体. 使用分配到的内存做点什么. 不需要时将其释放回归: 在不需要字符串.对象的时候,需要释放其所占用的内存,否则将会消耗完系统中所有可用的内存,造成系统崩溃,这就是垃圾回收机制所存在的意义. 所谓的内

(转)golang 垃圾回收机制

作者:zzZ 原文地址 原文使用 署名 - 非商业性使用 - 相同方式共享 4.0 国际 协议 声明,本文仅仅作为个人mark,排版并不如原文,为了更爽的阅读体验建议到原文查看. 延伸阅读: Go GC: Prioritizing low latency and simplicity 用任何带 GC 的语言最后都要直面 GC 问题.在以前学习 C# 的时候就被迫读了一大堆 .NET Garbage Collection 的文档.最近也学习了一番 golang 的垃圾回收机制,在这里记录一下. 常

接口,构造器与垃圾回收机制,对像的生命周期。非静态方法与静态方法。

java不充许多继承是,为了避免“致命方块”的出现例如 B继承A,C继承A. C和C里面都有play()方法 .现在D继承了B,C 想想D.play()调用 的是哪个play()呢,这就是问题所在. 所以java提供了接口来解决此问题. 问:接口并不是真正的多重继承,因为你无法在它里面实现程序代码,不是吗?如果是这样,那还要接口做什么? 答:多态,多态,多态.接口有无比的适用性,若你以接口取代具体的子类或抽象的父类作为参数或返回类型,则你就可以传入任何有实现该接口的东西.这么说吧,使用接口你就可

JVM的生命周期、体系结构、内存管理和垃圾回收机制

一.JVM的生命周期 JVM实例:一个独立运行的java程序,是进程级别 JVM执行引擎:用户运行程序的线程,是JVM实例的一部分 JVM实例的诞生 当启动一个java程序时.一个JVM实例就诞生了,任何一个拥有public static void main(string[] args)的函数都可以作为实例的运行启点 2.  JVM实例运行 main作为程序初始化线程的起点,任何其他线程由其启动. JVM有两种线程:守护线程和非守护线程.守护线程由JVM使用.main启动后将是非守护线程. 3.

Java垃圾回收机制学习心得

本文章是我在学习Java垃圾回收机制中总结的知识点的整理,在此特别感谢http://www.cnblogs.com/andy-zcx/p/5522836.html和http://blog.csdn.net/zsuguangh/article/details/6429592的博客. 内存泄漏:内存泄漏是指内存空间使用完毕后未进行回收操作.一般来说,Java中的内存泄漏是因为内存对象生命周期超出其在程序中存在的时间长度 垃圾回收意义:解决编程时需要考虑的内存管理问题,有效解决内存泄漏问题,充分利用空

js的垃圾回收机制

Js具有自动垃圾回收机制.垃圾收集器会按照固定的时间间隔周期性的执行. JS中最常见的垃圾回收方式是标记清除. 工作原理:是当变量进入环境时,将这个变量标记为“进入环境”.当变量离开环境时,则将其标记为“离开环境”.标记“离开环境”的就回收内存. 工作流程: 1.    垃圾回收器,在运行的时候会给存储在内存中的所有变量都加上标记. 2.    去掉环境中的变量以及被环境中的变量引用的变量的标记. 3.    再被加上标记的会被视为准备删除的变量. 4.    垃圾回收器完成内存清除工作,销毁那