一、执行上下文是什么
在JavaScript中,有三种代码分类:
1.全局代码(全局中书写的代码)
2.局部代码(常见函数体里的代码)
3.Eval代码(使用eval()执行的代码)
在JavaScript中的执行上下文指的是JS代码被解析和运行时所处的环境,被称之为JavaScript中的执行上下文
在执行代码前会有一个预编译的过程,这就像执行上下文差不多(个人感觉)
预编译会提前解析代码,但是不会解析=的操作。
1.全局执行上下文
(1)var 定义的全局变量,赋值为undefined(变量的声明提前,但没有解析赋值的操作,所以是undefined),并添加window的方法
(2)function声明的全局变量,赋值为其函数体代码(函数的声明提前),并添加为window的方法
(3)this指向window
(4)一个程序代码中只存在有且只有一个全局执行上下文
最后开始执行全局的代码。
2.函数执行上下文
(1)调用函数前,函数执行上下文,将实参赋值给形参
(2)函数里面的定义的局部变量,赋值给undefined,并添加window的方法
(3)this指向执行函数的对象
(4)当每次调用函数的时候,都会给该函数创建一个函数执行上下文
3.Eval执行上下文(还未了解)
标签:上下文,函数,代码,JavaScript,执行,赋值 来源: https://www.cnblogs.com/hM1ng/p/16630519.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。