码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript中堆栈解析,已经与delete之间的关系。

时间:2014-10-29 16:42:51      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:style   io   color   ar   使用   java   sp   数据   on   

1,在栈中的数据不会随意删除。

2,堆中的数据可以随意删除。

注意用eval("var a")定义的变量存放在栈中。

var 和function 语句在JavaScript中的优先级很高,需要预执行。

预执行就是因为需要计算作用域中局部变量指针所占空间的大小,从而给他们分配内存。

栈中的东西是不能随意删除的,所以我们无法删除这些变量。

但是某些情况下变量也可以放在堆中,比如使用eval执行var语句在运行过程中动态定义变量。

由于栈空间的计算在作用域运行前就计算好的,运行过程中动态定义的变量就无法插入栈中,所以被临时分配到了堆中。

既然是在堆中,我们就可以随意的删除它,这样就不会污染到其它作用域了。

JavaScript中堆栈解析,已经与delete之间的关系。

标签:style   io   color   ar   使用   java   sp   数据   on   

原文地址:http://www.cnblogs.com/sunzhenyong/p/4059738.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!