Javasvript作用域介绍

作用域:
全局作用域
局部作用域(函数作用域)
块级作用域(es6新增内容)

预解析——形成作用域对象的过程
(1)函数在执行前的一瞬间会生成一个AO(active object 活动对象)对象
(2)分析参数,形参作为ao对象的属性名,实参作为ao对象的属性值
(3)分析var声明,变量名作为ao对象的属性名,值为underfined。如果遇到同名,不会去做任何改变
(4)分析函数声明,函数名作为ao对象的属性名,值为函数体。如果遇到同名,直接以函数声明为主,直接覆盖

全局作用域,对应的对象是GO(global object)。进入script标签以后,在所有代码之前产生
产生方式可以说与AO完全相同,只是少了参数这一步骤
(1)在进入script标签,代码在执行前的一瞬间会生成一个GO(global object 活动对象)对象
(2)分析var声明,变量名作为go对象的属性名,值为underfined。如果遇到同名,不会去做任何改变
(3)分析函数声明,函数名作为go对象的属性名,值为函数体。如果遇到同名,直接以函数声明为主,直接覆盖

javascript 只有全局作用域和局部作用域,在进行预解析时,只需要去管函数,if判断中的声明(变量声明和函数声明)都得正常分析 if条件决定后面的执行过程

注意点:var声明没有影响,函数声明存在兼容性问题(各个版本的浏览器产生的结果不同)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值