0%
八、JavaScript之闭包
七、JavaScript之执行上下文
六、JavaScript之this理解
五、JavaScript之作用域链
在上一篇的文章中,我们了解到执行上下文数据(变量、函数声明和函数的所有形参)是由这个变量对象的属性存储的,另外,我们知道每次进入上下文时都会创建变量对象并填充初始化值,并且在执行上下文代码时会发生它的修改。
下面我们叫了解执行上下文相关的另一个概念:作用域链。
四、JavaScript之变量对象
在前面的文章《JavaScript之执行上下文栈》中讲到,当 JavaScript 代码执行一段可执行代码(executable code)时,会创建对应的执行上下文(execution context)。
三、JavaScript之执行上下文栈
由于JS是单线程的,每次只能做一件事情,其他的事情会放在指定的上下文栈中排队等待执行,所以执行上下文栈的作用是用来跟踪代码的,。
JS解释器在初始化代码的时候,首先会创建一个新的全局执行上下文到执行上下文栈顶中,然后随着每次函数的调用都会创建一个新的执行上下文放入到栈顶中,随着函数执行完毕后被执行上下文栈顶弹出,直到回到全局的执行上下文中。(栈:一种数据结构,遵循后进先出的原则)。下面我们说说执行上下文栈是如何工作的。