美文网首页
(五)执行环境及作用域

(五)执行环境及作用域

作者: 萘小蒽 | 来源:发表于2019-03-05 14:22 被阅读0次
执行环境

1、执行环境定义了变量或函数有权访问的其他数据,决定了他们各自的行为。

2、每个执行环境都会有一个与之关联的\color{#34a853}{变量对象},环境中定义的所有变量和函数都保存在这个对象中,我们编写的代码无法访问这个对象,但是解析器在处理数据时候会在后台使用它。

3、每个函数都有自己的执行环境,当执行流进入一个函数时,函数的环境就会被推入一个执行栈中。 在函数执行之后,栈将其环境弹出,把控制权返给之前的执行环境。

作用域链

1、当代码在一个执行环境中执行时,会创建\color{#34a853}{变量对象}的一个\color{#34a853}{作用域链}

2、\color{#34a853}{作用域链}的用途是保证对执行环境有权访问的所有变量和函数的有序访问。

作用域链的延伸

虽然执行环境的类型只有两种,全局和局部(es5函数),但是有其他办法来延长作用域链。

with语句它将指定的对象添加到作用域中。

function buildurl(){
   var qs = "?test = 1231";
        with(location){
           var  url = href + qs;
        };
}

with接收的是location对象,因此其变量对象中包含了location对象的所有属性和方法,而这个变量对象被添加到了作用域的前端。
try-catch语句也同理,不同的是catch会创建一个新的变量对象(error,ie9之后),里面包含了被抛出的错误对象的声明。(ie8以及之前的版本是添加到执行环境的变量对象,而不是catch语句的变量对象中,就是说在catch外部也能访问

相关文章

  • (五)执行环境及作用域

    执行环境 1、执行环境定义了变量或函数有权访问的其他数据,决定了他们各自的行为。 2、每个执行环境都会有一个与之关...

  • JS 作用域与作用域链

    1. 作用域 作用域就是代码的执行环境,全局执行环境就是全局作用域,函数的执行环境就是私有作用域,它们都是栈内存。...

  • 作用域和作用域链

    1. 作用域 作用域就是代码的执行环境,全局执行环境就是全局作用域,函数的执行环境就是私有作用域,它们都是栈内存。...

  • 执行环境及作用域

    执行环境 执行环境(execution context),定义了变量或函数有权访问的其他数据,决定了它们各自的行为...

  • 执行环境及作用域

    作用域的作用:保证对执行环境有权访问的所有变量和函数有序访问。 函数执行时,标识符解析会沿着作用域链向上一级一级查...

  • 执行环境 & 作用域 & 闭包

    执行环境 & 作用域 & 闭包 执行环境 , 作用域 , 闭包 , 闭包应用 执行环境 执行环境定义了 当前环境的...

  • 第四章 变量,作用域和内存问题(二)

    2. 执行环境及作用域   执行环境(execution context,为简单起见,有时也称为“环境”)是Jav...

  • Javascript 作用域链、闭包的理解和应用

    1. 什么是作用域,作用域链 作用域,指代码所在的执行环境。代码执行时产生的最先产生的执行环境,称为全局作用域, ...

  • JS_0: 执行环境和作用域链

    JavaScript,目前对于执行环境和作用域链的理解 什么是作用域链? 要讲作用域链就得先讲执行环境。 每个函数...

  • 闭包

    作用域和作用域链 当某个函数被调用时,会创建一个执行环境及相应的作用域链。然后,使用argument和其他命名参数...

网友评论

      本文标题:(五)执行环境及作用域

      本文链接:https://www.haomeiwen.com/subject/fzhiuqtx.html