美文网首页
jS的执行环境以及作用域浏览器的回收机制

jS的执行环境以及作用域浏览器的回收机制

作者: codeSirCao | 来源:发表于2017-06-13 21:12 被阅读12次

执行环境(execution context)是JS一个非常重要的概念。

执行环境定义了变量或函数有权访问的其他数据决定了他们的各自的行为,每个执行环境等都有与之关联的的:变量对象(variable object),环境中定义的所有{变量}和{函数}都保存在这个对象中。(JS是无法读取内存的)我们编写的代码无法访问这个对象 但是解析器会在处理数据的时候后台使用它


全局执行环境

JS宿主:运行的平台(他是脚本语言吗所以你懂得)

由于JS实现的宿主环境不同, 表示执行环境也不一样

web浏览器中全局---------window对象 知道了这个那么天天使用的变量啊,函数啊的全局 都是作为window对象的属性和方法创建的

环境销毁:

某个执行环境所有代码执行完之后 该环境被销毁 保存在其中的所有变量和函数定义也随之销毁(这个全局也就是关了浏览器或者程序的时候才被销毁 )

局部执行环境

栈:每个函数都有自己的执行环境 当执行流进入函数时,函数的环境就被推入一个环境栈中

而在函数执行之后,将其环境弹出, 把控制权返回之前的执行环境-----------------ECMAScript中的执行流(从上到下执行)真有这个方便的机制控制着

环境执行(作用域链)

当代码在一个环境中执行时,会创建变量对象的一个----------作用域链
用途:保证对执行环境的有权访问的所有变量和函数的有序访问(上面执行环境的概念)作用于链的前端-----始终是当前执行代码所在环境的变量对象(就是正在执行的代码 现在执行的位置)
比如环境是函数 那么将其活动对象最为变量对象 活动对象在开始只包含一个变量 即{arguments对象}(注意全局环境中不存在arguments)那么作用域的下一个变量对象来自包含来自(外部)环境 ,而下一个则是来自下一个包含环境 这样一直延续到全局执行环境; 全局环境始终是作用域链的最后一个对象(web浏览器中即是window)

相关文章

  • js基础7(垃圾回收机制、闭包)

    1、js的垃圾回收机制 浏览器自己做的 全局作用域声明的一个变量不会被回收,只有关闭浏览器才会回收 在局部作用域里...

  • 闭包

    一、理解闭包前js基础1、作用域链(作用域、作用域链中有说)。2、js的内存回收机制。一个函数在执行开始的时候,会...

  • jS的执行环境以及作用域浏览器的回收机制

    执行环境(execution context)是JS一个非常重要的概念。 执行环境定义了变量或函数有权访问的其他数...

  • 闭包的理解。

    js的垃圾回收机制 当一个函数执行完,js引擎会回收不再使用的内存,闭包通过这个作用域的引用,阻止了垃圾回收。 什...

  • js 随笔

    js 执行机制: js执行上下文: 只有理解了js 执行上下文才能更好的理解 js变量提升以及 作用域和闭包 所谓...

  • JS学习之执行环境和作用域

    JS学习之执行环境和作用域 执行环境和作用域相关介绍 执行环境 执行环境定义了变量或函数有权访问的其他数据,决定了...

  • 作用域链、原型链

    作用域链:【针对标识符解析】 js执行都是在“执行环境“中进行的,最外围是全局执行环境(浏览器中是window...

  • 整理

    内容 浏览器渲染 执行上下文 js 事件循环机制 this 作用域 new 原型 原型链 防抖&节流 闭包 深浅拷...

  • 浅说预解析

    全局作用域:当浏览器加载html页面的时候,首先会提供一个全局Js代码执行的环境. 预解析:在当前作用域中,js代...

  • JS预解释 & 作用域链

    浏览器加载HTML页面时,首先会提供一个供全局JS代码执行的环境称之为全局作用域全局作用域在后台用global 表...

网友评论

      本文标题:jS的执行环境以及作用域浏览器的回收机制

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