首页 > 代码库 > JavaScript中堆栈解析,已经与delete之间的关系。
JavaScript中堆栈解析,已经与delete之间的关系。
1,在栈中的数据不会随意删除。
2,堆中的数据可以随意删除。
注意:用eval("var a")定义的变量存放在栈中。
var 和function 语句在JavaScript中的优先级很高,需要预执行。
预执行就是因为需要计算作用域中局部变量指针所占空间的大小,从而给他们分配内存。
栈中的东西是不能随意删除的,所以我们无法删除这些变量。
但是某些情况下变量也可以放在堆中,比如使用eval执行var语句在运行过程中动态定义变量。
由于栈空间的计算在作用域运行前就计算好的,运行过程中动态定义的变量就无法插入栈中,所以被临时分配到了堆中。
既然是在堆中,我们就可以随意的删除它,这样就不会污染到其它作用域了。
JavaScript中堆栈解析,已经与delete之间的关系。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。