js执行环境、作用域

js执行环境、作用域

  • 执行环境:是javascript中的一个重要的概念,《javascript高级程序设计第三版》的定义是:执行环境定义了变量或函数有权访问的其他数据,决定了他们各自的行为。执行环境其实就是一个概念,一种机制
  • 执行环境作用:执行环境就是用来完成javascript运行时在作用域、生存期等方面的处理。
  • 变量对象:每一个执行环境都有一个与之关联的变量对象,环境中定义的所有变量和函数都保存在这个对象中。
  • 全局执行环境:最外围的一个执行环境,根据ECMAScript实现所在的宿主环境不同而不同,在Web浏览器中,全局执行环境被认为是window对象。
  • 执行环境的销毁:当调用一个javascript函数时,该函数就会进入该函数相对应的执行环境,如果又调用的另一个函数,则会又创建一个新的执行环境,并且在函数调用期间都在这个环境中,直到函数调用完成,该环境就会被销毁,其中的变量和方法也会被销毁。总的就是说,当一个函数被调用时,执行流就进入这个函数,该函数的环境就会被推入一个环境栈中,当函数执行完后栈就会把这个函数的环境弹出。把控制权返回给之前的环境。
  • 作用域:就是一个函数的即将执行的执行环境的大小(还没被调用之前)。
  • 作用域链:当一个函数在他的执行环境中被执行时,就会创建变量对象的一个作用域链,他的用途就是保证对执行环境有访问权限的所有变量和函数进行有序的访问。

      var  color = 'blue';
      function changeColor(){
          var color1 = 'red';
          function litileColor(){
              var color2 =color1;
              color1 = color;
              color =color2;//这里可以访问color  color1  color2
          }
          //这里可以访问color color1,但是不能访问color2
          litileColor();
      }
      //这里只能访问color
      changeColor();

    上面这个例子就建立了一个四级的作用域链,还说明了内部环境可以通过作用域链访问外部作用域链,但是外部环境不能访问内部环境。

转载于:https://www.cnblogs.com/yehui-mmd/p/6510333.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值