javascript执行环境和作用域

1.执行上下文环境

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

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

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

    b、对于this,直接赋值

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

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

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

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

   


2.执行上下文栈

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

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

 3.作用域

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

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

    跨作用域取值:到创建该函数的作用域中查找。如果,没有则继续向上找。2.如果该作用域为全局作用域,则没 有找到该变量。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值