说一下执行上下文的理解?
在 代码执行前 产生
产生变量提升、函数提升的原因
定义:
全局执行上下文对象:在执行全局代码前,创建对应的全局执行上下文对象,即window对象,进行预处理
函数执行上下文对象:在调用函数后、准备执行函数体之前,创建对应的函数执行上下文对象,进行预处理
块级私有执行上下文对象:在执行块级代码前,创建对应的块级私有执行上下文对象,进行预处理
执行上下文栈:
存放执行上下文对象的栈
按照上下文对象创建的次序进栈,然后从栈顶依次执行出栈
说一下什么是作用域、作用域链?
在 代码编写时 产生
定义:
全局作用域:全局执行上下文对象的有效作用范围
函数作用域:函数执行上下文对象的有效作用范围
块作用域:块级私有执行上下文对象的有效作用范围
作用域链:
在某一作用域内找某一变量时,先在自身作用域内的执行上下文对象中找,找不到再去父作用域内的执行上下文对象中找,依次向上找,直到全局作用域内的执行上下文对象为止。这个过程称为作用域链。