这里我们通过几道面试题来引申出作用域和闭包的相关知识点
看到这些问题,我们头脑如果能会下意识的浮现下面的知识点,我们的目的就达到了。的
![在这里插入图片描述](https://img-blog.csdn.net/20181013105859599?watermark/2/te
一。执行上下文
1.范围: 一段<script>
或者一个函数内
2.全局:变量定义、函数声明、
3.函数:变量定义、函数声明、this、arguments、函数
当我们的代码运行时,变量的定义和函数的声明会被提前,var a
会被提到顶部,并且赋值undefined
var a;//a被赋值为undefined
console.log(a)
a = 100
请大家看下图的 两小段代码
二。 this的相关知识
this要在实行的时候才能确认值,定义是无法确认。一般有以下场景会确认
三。作用域
四。作用域链
他是一个链式结构,一级一级的向上寻找
五。闭包
总结一下闭包的使用场景
1.函数作为返回值
2.函数作为参数传值