javaScript作用域提升/GO、VO,AO,VE什么意思

往下看,你能看得懂哒  ^_^

一、理论

先了解一下,下面内容直接用简称代替

Global Object(简称GO,全局对象)

Variable Object(简称VO,变量对象)

Activation Object(简称AO,活跃对象)

Variable Environment(简称VE,变量环境)

在新的ECMA版本规范中,已经把VO改成VE

二、举例说明

这题相信大家都知道答案了,undefined和200,那么到底是怎样执行的呢?

console.log(n)
var n = 100
function foo() {
    n = 200
}
foo()
console.log(n)

所有代码都是在调用栈里执行的

 

 

 7.打印最后一行代码,n是200

PS:如果再次调用foo函数,会再次在内存中创建VE,然后放进调用栈再走一遍

这里我没有演示AO,也跟VE差不多,是在调用栈中先用到的就叫AO不用了就销毁,指针不再指向那块内存

最后画图不易....

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值