JavaScript:执行上下文 (栈)、作用域(链)、预解析

执行上下文 (栈):

执行上下文、执行上下文栈、预解析、作用域、作用域链、 (打断点)

执行上下文(执行上下文环境)://全局环境 函数环境

程序在解析和运行的时候所依赖和使用的环境;

全局执行上下文环境 和 函数执行上下文环境 (全局环境和函数环境)

执行上下文 > 栈:

程序为了管理执行上下文(确保程序的执行顺序)所创建的一个栈数据结构,被称作执行上下文栈;

预解析(变量提升):

先解析函数:函数重名覆盖

再解析变量:变量重名忽略

作用域:(抽象的概念,代码定义的时候作用域就确定死了)

变量起作用的范围;

作用域;隔离变量,防止变量命名污染;

作用域定义时候确定

作用域链:

真实存在的,作用域链是使用执行上下文当中变量对象所组成的链条结构(数组结构)

查找的时候其实真正是先去自身的变量对象当中查找,如果没有,去上级执行上下文的变量对象当中去查找,直到找到全局执行上下文的变量对象; 函数调用的时候上一级的变量对象其实是在函数定义的时候都已经确定好的。

程序开始执行:(全局环境和函数环境)

全局执行上下文(分为创建阶段和执行阶段)代码开始执行之前和之后

1、全局执行上下文压入执行上下文栈)

创建上下文阶段:

1、收集变量形成变量对象 (函数 var的变量会收集)

预解析(其实在创建变量对象的时候已经做了预解析)

2、确定this指向(可以认为确定执行者)

3、创建自身执行上下文的作用域链

注意:同时确定函数在调用时候的上级作用域链。(根据ECMA词法去确定,看内部是否引用外部变量确定)

2、执行全局执行上下文</

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值