执行栈和执行上下文

  • 什么是作用域,什么是作用域链?

规定变量和函数可使用的范围称作作用域

每个函数都有一个作用域链,查找变量或函数时,需要从局部作用域到全局作用域依次查找,这些作用域的集合成​​​​​​​为作用域链


  •  什么是执行栈,什么是执行上下文?​​​​​​​​​​​​​​

1、 ​​​​​​​执行栈(先进后出​​​​​​​)

当进入一个执行环境,就会创建出它的执行上下文,然后进行压栈,当程序执行完成时,它的执行上下文就会被销毁,进行弹栈。
栈底永远是全局环境的执行上下文,栈顶永远是正在执行函数的执行上下文。
只有浏览器关闭的时候全局执行上下文才会弹出

2、 ​​​​​​​执行上下文分

执行上下文分为:
        全局执行上下文一个全局的window对象,并规定this指向window,执行js的时候就压入栈底,关闭浏览器时候才弹出。

        函数执行上下文每次调用函数时,会创建一个新的函数执行上下文。执行上下文分为创建阶段执行阶段创建阶段:函数环境会创建变量对象:arguments对象(并赋值),函数声明(并赋值),变量声明(不赋值),函数表达式(不赋值);会确定this指向,会确定作用域。 执行阶段:变量赋值、函数表达式赋值,使变量对象变成活跃对象
    

​​​​​​​

猜你喜欢

转载自blog.csdn.net/weixin_42606371/article/details/120788132