执行上下文 (栈):
执行上下文、执行上下文栈、预解析、作用域、作用域链、 (打断点)
执行上下文(执行上下文环境)://全局环境 函数环境
程序在解析和运行的时候所依赖和使用的环境;
全局执行上下文环境 和 函数执行上下文环境 (全局环境和函数环境)
执行上下文 > 栈:
程序为了管理执行上下文(确保程序的执行顺序)所创建的一个栈数据结构,被称作执行上下文栈;
预解析(变量提升):
先解析函数:函数重名覆盖
再解析变量:变量重名忽略
作用域:(抽象的概念,代码定义的时候作用域就确定死了)
变量起作用的范围;
作用域;隔离变量,防止变量命名污染;
作用域定义时候确定
作用域链:
真实存在的,作用域链是使用执行上下文当中变量对象所组成的链条结构(数组结构)
查找的时候其实真正是先去自身的变量对象当中查找,如果没有,去上级执行上下文的变量对象当中去查找,直到找到全局执行上下文的变量对象; 函数调用的时候上一级的变量对象其实是在函数定义的时候都已经确定好的。
程序开始执行:(全局环境和函数环境)
全局执行上下文(分为创建阶段和执行阶段)代码开始执行之前和之后
1、全局执行上下文压入执行上下文栈)
创建上下文阶段:
1、收集变量形成变量对象 (函数 var的变量会收集)
预解析(其实在创建变量对象的时候已经做了预解析)
2、确定this指向(可以认为确定执行者)
3、创建自身执行上下文的作用域链
注意:同时确定函数在调用时候的上级作用域链。(根据ECMA词法去确定,看内部是否引用外部变量确定)
2、执行全局执行上下文</

最低0.47元/天 解锁文章
579

被折叠的 条评论
为什么被折叠?



