ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

作用域精解

2021-03-08 21:35:47  阅读:120  来源: 互联网

标签:精解 函数 作用域 环境 上下文 执行期 执行


//  第11课

作用域精解

运行期上下文,当函数执行时,会创建一个成为执行期上下文的内部对象。一个执行期上下文定义了一个函数执行时的环境,函数每次执行时对应的执行期上下文都是独一无二的,所以多次调用一个函数会导致创建多个执行期

上下文,当函数执行完毕,他所产生的执行上下文被销毁

查找变量:从作用域的顶端依次向下查找

作用域

[[scope]]]每个javascript函数都是一个对象,对象中有些属性我们可以访问,但是有些不可以,这些属性仅供javascript

引擎存取,[[scope]]就是其中一个

[[scope]]指的就是我们所说的作用域,其中存储了运行期上下文的集合

作用域链;[[scope]]中所存储的执行期上下文对象的集合,这个集合呈链式链接,我们把这种链式链接叫做作用域链

                javascript执行环境(执行期上下文)

当js控制器(control)进入可执行代码时,控制器会进入一个执行环境,活动的多个执行环境构成执行环境栈,最上面的是正在运行的执行环境,当控制器进入一个新的执行环境时,新的执行环境被放到栈最顶端。

执行环境包含以下三个组件:

组件 作用目的

词法环境 执行环境内的代码创建的标识符引用的一个词法环境对象

变量环境 执行环境内的代码通过变量表达式和函数表达式创建的绑定的一个词法环境对象。

                this绑定    指定该执行环境内的this关键字所关联的值。

立即执行函数

针对初始化功能的函数

只有表达式才能被执行符号执行,(将函数变为表达式,函数执行完立即释放,达到立即执行函数的结果)

被执行符号执行的表达式, 名字被自动忽略(放弃)。

不是最初语法,实践中,利用了()的特性

(function(){}())     标准写法

(function(){})()

+ - ! function test(){} ()

var a = function( ){} ()

试题

function text(a,b,c,d){

    console.log(a + b + c + d)

}(1,2,3,4);

不报错 不执行

系统执行结果

function text(a,b,c,d){

    console.log(a + b + c + d)

}

上下分开

(1,2,3,4);

标签:精解,函数,作用域,环境,上下文,执行期,执行
来源: https://www.cnblogs.com/ban1234/p/14502353.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有