您的位置:首页 > Web前端 > JavaScript

javascript执行环境和作用域

2017-06-04 15:46 260 查看
1.执行上下文环境

   javascript在执行代码之前,会先做一些准备工作。找到所有的变量,有的直接为其赋值,有的则先声明并默认赋值为undefined。

     在全局作用域中执行代码时,要准备以下三件事;

    a、对于变量、函数表达式。则对其进行变量声明,默认赋值为undefined。

    b、对于this,直接赋值

    c、对于函数声明,直接赋值

  在函数体内执行代码时,还需要再做两件事:

    d、为函数的形参和arguments对象直接赋值。

    e、确定函数体内部自由变量的作用域。

   

2.执行上下文栈

      执行全局作用域中的代码是,会产生执行上下文环境。当调用函数时,也会产生函数执行上下文环境。函数调用完成后,这个函数执行上下文环境以及其中的数据都会被销毁,然后回到全局上下文环境。所以,处于活动状态的执行环境只有一个。。

注意:理想情况下,函数执行环境会被完全销毁,但是也有不能完全销毁的。(由于闭包的存在)

 3.作用域

    两种:全局作用域和函数作用域。

    自由变量:跨作用域取值的变量。

    跨作用域取值:到创建该函数的作用域中查找。如果,没有则继续向上找。2.如果该作用域为全局作用域,则没 有找到该变量。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: