javascript 变量释放问题

vara;内存中分配了a的存储空间,有多大?a=200;a赋值为200,是不是把值替换成了200?a=300;a又再次赋值为了300?是替换吗?我看书上说,垃圾回收内存释... var a ;
内存中分配了a的存储空间,有多大?
a = 200;
a赋值为200 ,是不是把值替换成了200?
a = 300;
a又再次赋值为了300 ?是替换吗?

我看书上说,垃圾回收内存释放,是什么意思,是释放还是替换。。
展开
 我来答
mohunk10
推荐于2016-03-11 · TA获得超过754个赞
知道小有建树答主
回答量:466
采纳率:100%
帮助的人:454万
展开全部
var a;只是在栈中声明了一个变量,并未给它分配内存空间。
a = 200;把变量a指向到存放200的地址空间。
a = 300;就是把变量a由原来指向200改变成指向300,,200所占的这块空间没有任何引用指向它,它就会被垃圾回收器在某个时间点上自动回收掉。等整个大括号结束后,a变量被释放,300无引用指向它,也就会被回收。
大雅新科技有限公司
2024-11-19 广告
这方面更多更全面的信息其实可以找下大雅新。深圳市大雅新科技有限公司从事KVM延长器,DVI延长器,USB延长器,键盘鼠标延长器,双绞线视频传输器,VGA视频双绞线传输器,VGA延长器,VGA视频延长器,DVI KVM 切换器等,优质供应商,... 点击进入详情页
本回答由大雅新科技有限公司提供
yzy_130
2012-06-28 · TA获得超过810个赞
知道小有建树答主
回答量:402
采纳率:0%
帮助的人:493万
展开全部
楼上说得很好~
补充一下~
手动释放内存使用delete关键字~
比如:delete a;
但是,js中一般情况下不需要手动释放~

只有一种情况下需要手动释放,这种情况叫做"内存泄露"
一般出现在闭包的应用和循环引用的时候~

希望对您有帮助~
By Billskate
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
胥怿宗欣跃
2019-09-19 · TA获得超过3767个赞
知道大有可为答主
回答量:3148
采纳率:26%
帮助的人:277万
展开全部
这么说吧:<br/> var status = 'outer';<br/> function showstatus(){<br/> var status;<br/> alert(status);//undefined<br/> status = 'inner';<br/> aler(status); //inner<br/> }<br/> 这样写你理解起来就肯定没有问题,但在你的代码中,实际发生的情况就跟这个一样。在一个函数作用域里,所有的变量宣示都会被最先执行,所以你的var status 不管写在第二行还是最后一行,js 都在函数执行一开始就会为它分配内存,所以在这个域里,status 已经被定义而且值为undefined. 外面全局域里的status 被“覆盖”了。然后,才是变量赋值 outerstatus = status;(还是undefind), status = 'inner'(这时status 有值了), alert(....)<br/>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式