美文网首页
js基础知识

js基础知识

作者: 拾钱运 | 来源:发表于2021-07-30 15:00 被阅读0次

1.函数对象的【scope】属性

局部作用域,内部定义的数据,外部不能访问
全局的对象有:this ,window,docuement ,以及全局对象函数和变量(自己定义的哪些函数和变量 function getName(){} var name="张三")

2.执行期上下文

执行定义的函数就会创建一个内部对象,称为执行器上下文也就是正在执行时的作用域环境。
平常说的上下文:是this的取值指向。
一旦函数执行完成,执行期上下文将被销毁
当执行其上下文时就会创建一个激活对象,新对象,这个激活对象保存了函数中所有的形参,实参,局部变量,this指针等函数执行时函数内部的数据情况。然后将这个执行上下文作用域推送到作用域的顶部。

特别解说

(这里也就说明了当内部变量和全局变量相同时,局部变量就会代替全局变量的值。寻找变量的收会从局部变量开始查找,局部变量没有就全局找,直到找到没有为止,没有就是未定义)
激活对象是一个可变对象,里面的数据随着函数执行时的数据的变化而变化,当函数执行结束之后,执行期上下文将被销毁。也就会销毁作用域,激活对象也同样被销毁。这也就是闭包的存在的必要。这样激活对象就会以另外一种方式存在。

3.闭包

闭包函数对象的作用域和其父函数的作用域时相同的,全局作用域也会被引入到闭包函数中。所以当外部的函数执行完之后,闭包函数还没有开始执行,就可以访问外部函数数据,因为在词法分析中,闭包函数还没有执行,函数内部不知道是否要对其局部变量进行访问和操作,所以只能把当前的局部作用域对象保存起来。当闭包需要的时候,就去作用域中查找。也正因为这种引用,造成了一个副作用。正常执行期上下文被销毁后,函数的激活对象也就会随之销毁。

4 .ES6,ES7,---ES12

https://mp.weixin.qq.com/s?__biz=MzIyMDkwODczNw==&mid=2247495146&idx=1&sn=161804ab5d0fc90f266840c760a08c55&chksm=97c67044a0b1f9520cc9733f337d667a4afd101c69d231a006f36560ee4457090aad5eb0112b&scene=21#wechat_redirect

相关文章

网友评论

      本文标题:js基础知识

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