2 yiqisweet yiqisweet 于 2016.05.09 15:05 提问

关于js垃圾回收机制的问题
  var i;
 for(i=0;i<length;i++){

 }

 for(var i=0;i<length;i++){

 }

两个基础问题,我从外定义和在for循环定义i的区别在哪里
众所周知js没有块级作用域,那么我定义的i 在垃圾回收机制中算不算进入环境和离开环境呢?

2个回答

showbo
showbo   Ds   Rxr 2016.05.09 15:17
已采纳

你2个是等级的,主要看for语句体是否有闭包引用到i,引用到是不会释放的

showbo
showbo 回复yiqisweet: for语句中没有代码引用到i浏览器会自动释放,无法人为控制
大约 2 年之前 回复
yiqisweet
yiqisweet 有什么办法可以让i释放呢?
大约 2 年之前 回复
showbo
showbo 等价的
大约 2 年之前 回复
qq_33327210
qq_33327210   2016.05.09 15:09

也有类似对象操作的吧。在一个函数里返回的对象与其他的对象互不干扰。

yiqisweet
yiqisweet 疑问就是我不肯定是否可以离开环境,我不知道怎么判断的
大约 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
JS的垃圾回收机制和内存分配
1 JS的垃圾回收机制 JS解释器和C#,java的运行环境一样有垃圾回收机制,程序员不需要手动跟踪释放内存。        垃圾回收机制:就是释放那些不再使用的变量。什么是不再使用?就是生命周期结束的变量,可能是全局的和局部的。        例如: function A(){ var i = {name:'qiqi'}; } function B(){ var i = {na
面试题 java垃圾回收机制
前几天面试的时候被问到垃圾回收机制的时候,心里还庆幸这个之前看过,可是答完后就傻了,面试官竟然问还有没有。 好吧,我一直以为面试官是懂我说什么的,加上说的有点快,有点乱,很多东西都省略掉了,估计是我省略掉的被认为是我不懂的了。 所以组织一下语言,下次尽量说的清楚一点。。 内存回收机制: 内存回收就是释放掉在内存中已经没用的对象。 首先,要判断怎样的对象是没用的对象。这里有2种方法
面试题——js垃圾回收机制和引起内存泄漏的操作
JS的垃圾回收机制了解吗?        Js具有自动垃圾回收机制。垃圾收集器会按照固定的时间间隔周期性的执行。 JS中最常见的垃圾回收方式是标记清除。 工作原理:是当变量进入环境时,将这个变量标记为“进入环境”。当变量离开环境时,则将其标记为“离开环境”。标记“离开环境”的就回收内存。 工作流程: 1.    垃圾回收器,在运行的时候会给存储在内存中的所有变量都加上标记。 2.
javascript的垃圾回收机制与内存管理
一、垃圾回收机制—GC Javascript具有自动垃圾回收机制(GC:Garbage Collecation),也就是说,执行环境会负责管理代码执行过程中使用的内存。 原理:垃圾收集器会定期(周期性)找出那些不在继续使用的变量,然后释放其内存。 JavaScript垃圾回收的机制很简单:找出不再使用的变量,然后释放掉其占用的内存,但是这个过程不是实时的,因为其开销比较大,所以垃
js中的垃圾回收机制
js具有自动垃圾回收机制,也就是说,执行环境会负责管理代码执行过程中使用的内存。而在C和C++之类的语言中,开发人员的一项基本任务就是手工跟踪内存的使用情况,这是造成许多问题的根源。在编写js程序时,开发人员不用关心内存使用问题,所需内存的分配以及无用内存的回收完全实现了自动管理。这种垃圾回收机制的原理其实很简单:找到那些不再继续使用的变量,然后释放其所占用的内存。为此,垃圾回收器会按照固定的时间
JS的垃圾回收机制
内存生命周期首先,不管什么程序语言,内存生命周期基本是一致的: 分配你所需要的内存 使用分配到的内存(读、写) 不需要时将其释放归还 在所有语言中第一和第二部分都很清晰。最后一步在低级语言中(C语言等)很清晰,但是在像JavaScript 等高级语言中,这一步是隐藏的、透明的。因为JavaScript 具有自动垃圾收集机制(Garbage collected )。在编写 JS 时,不需要关心内存使
js的垃圾回收机制
在js中局部变量只存在函数执行的过程中,在执行过程中,会为这些局部变量在栈或者堆上分配相应的空间储存它们的 值,当执行完毕后,这些局部变量便会备销毁,用来释放内存空间。而这一操作是由垃圾回收机制完成,垃圾回收机制 会跟踪那些变量有用,那些变量无用,然后对没有的变量进行销毁回收内存。这一实现在浏览器中主要有两种实现方式 1、标记清除 这一方式是js中最常用的垃圾回收方式。当变量进入某一
js垃圾回收机制
js的垃圾回收机制有两种 标记清除 引用计数 1.标记清除基本上所有主流浏览器和IE9以上的ie浏览器都使用这种方式。我们知道,我们创建一个函数时会产生一个函数作用域,当然我们还有根作用域。作用域的其中一个作用就是可以为变量标记。当进入新的执行环境时,我们创建一个新的作用域,记录每个变量,标记为不可清除。 当函数执行完毕,局部变量在离开执行环境时,作用域为其标记可以清除,隔一段时间,就会有垃圾回收
【红宝书笔记】一点关于JS的垃圾回收机制
JS的回收机制分两种:1.标记清除 2.引用计数。各大浏览器常用的是前者.这两种回收机制的过程都比较清晰易懂。 标记清除:是对于脱离作用域的变量进行回收。当进入作用域时,进行标记,离开作用域时,标记并回收这些变量。 引用计数:是记录每个变量的被引用情况,每当过一段时间开始垃圾回收的时候,就把被引用数为0的变量回收。这个问题可能导致循环引用,类似死锁。这样变量就永不会被销毁。。 由于每
深入解析Java垃圾回收机制
 面试必备 | 深入解析Java垃圾回收机制 2017-08-09 六尺帐篷 Android技术杂货铺 Android技术杂货铺 Android技术杂货铺 微信号 功能介绍 专注分享Android开发中的各种技术点、学习教程、流行框架、经验之谈,奇技淫巧等等。为你的Android成长之路排忧解难,欢迎关注。 作者相关: 作者:六