APP下载

前端js入门——JavaScript作用域

消息来源:baojiabao.com 作者: 发布时间:2024-05-09

报价宝综合消息前端js入门——JavaScript作用域

私信我或关注微讯号:猿来如此呀,回复:学习,获取免费学习资源包。在MDN或者其他权威教程上,对于作用域的解释无一例外是与可见性和生命周期相关。

作为最重要的概念之一,初学者往往会惑于上述高大上的理论阐述。

所以从浅显处入手,可能更有助于对于概念的入门和深入理解。

作用域通俗的讲就是变数或者函式的“势力范围”,在此范围内,变数可以被引用,函式可以被呼叫。

JavaScript具有两种作用域:

(1).全域性作用域。

(2).函式作用域。

特别说明:ES2015新增块级作用域。

函式中宣告的变数是区域性变数,当然必须使用var宣告,否则也是一个全域性变数,程式码如下:

`function` `func{``var` `webName=``"兴趣部落(网页制作)"``;``address=``"海岛市南区"``;``}`

8

两个变数虽然都是在函式中宣告,但webName是区域性变数,address是全域性变数。

全域性变数在整个程式码中都是可见的,区域性变数仅能在宣告变数的函式(包括巢状在其中的函式)中使用。

再来看一段程式码:

function func{

var webName=``"兴趣部落(网页制作)"``;

function funcInner{

var target=``"分享互助"``;

}

}

变数webName可以在函式func和funcInner中应用,但变数target只能够在funcInner中使用。

全域性变数是window物件的属性,"势力范围"是整个程式码。

程式码例项如下:

var antzone=``"分享互助"``;

function func{

var webName=``"兴趣部落"``;

}

console.log(window.antzone);

作用域链:

作用域链是查询一个变数的时候,一层一层的向上形成的查询轨迹,类似于一个链子一样。

程式码例项如下:

var antzone=``"兴趣部落"``;

function box{

var a=``"box函式"``;

function middle{

var b=``"middle函式"``;

function inner{

console.log(antzone);

}

inner;

}

middle;

}

box;

将要打印antzone时,首先会在当前inner函式作用域中查询,没有找到,则向上在middle函式作用域中查询,没有查询到,再向上在box中查询。依然没有查询到,最后在全域性作用域中查询,这样就形成作用域链效果。

来源网络,侵权联络删除

2019-11-23 18:54:00

相关文章