关于JavaScript的作用域链
标签:
JavaScript
1.什么是作用域?
作用域就是变量与函数的可访问范围,JavaScript的变量作用域有两个范围,全局作用域和局部作用域。在函数定义之外声明的变量是全局变量,它的值可以在整个程序中访问和修改。在函数定义内声明的变量是局部变量,每当执行函数时,都会创建和销毁该变量,并且无法通过函数之外的任何代码访问该变量。
2.局部作用域
image.png
因为局部变量只作用于函数内,所以不同的函数可以使用相同名称的变量。局部变量在函数开始执行时创建,函数执行完成后局部变量会自动销毁。
3.全局作用域
image.png
全局变量有全局作用域,可以在任何地方进行使用。
如果变量在函数内部没有进行声明,那么该变量默认为时全局变量。
例如:
function partScope(){
n = "jirengu"; //n为全局变量
}
4.作用域链
当查找一个变量的时候,会先从上下文的变量对象中查找,如果没有找到,就会从父级执行上下文的变量对象中查找,一直找到全局上下文的变量对象,也就是全局对象。这样由多个执行上下文的变量对象构成的链表叫做作用域链。
image.png
函数在执行的过程中,先从自己内部找变量如果找不到,再从创建当前函数所在的作用域去找, 以此往上。注意找的是变量的当前的状态。
作者:柳岸花茗
链接:https://www.jianshu.com/p/61bca5d085dd
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦