这样的javascript的区别!

xiye_jfb 2014-10-16 03:12:14

//测试一
<script type="text/javascript">
var obj; //在外部定义
$(function(){
for(var i = 0;i<10000000;i++){
obj+=obj;
}
});
</script>


//测试二
<script type="text/javascript">
$(function(){
var obj; //在内部定义
for(var i = 0;i<10000000;i++){
obj+=obj;
}
});
</script>


我想问的是浏览器加载数据的时候:
问题1:测试1的obj是全局的 这个obj变量是否一直存在,如果数据很多那么浏览器会不会变慢
问题2:测试2时局部的变量 在加载完这个页面后就会释放掉?这样就不会占用空间?
都说说这2个声明有什么不同

...全文
88 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
天际的海浪 2014-10-16
  • 打赏
  • 举报
回复
问题1:obj变量在离开页面之前会一直存在,数据很多不会让浏览器变慢,只是会占用内存 问题2:如果没有产生闭包的话,在执行完这个函数后obj变量会释放掉,但是否立即回收变量之前占用的内存空间就要看各浏览器的内存回收机制了 这2个声明主要的不同是第二个不论变量有没有释放,在那个函数之外都无法访问

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧