关于js垃圾回收机制的问题

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

 }

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

 }

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

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

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