2 2
js作用域详细解释

js作用域详细解释

ID:20433280

大小:73.00 KB

页数:8页

时间:2018-10-11

js作用域详细解释_第1页
js作用域详细解释_第2页
js作用域详细解释_第3页
js作用域详细解释_第4页
js作用域详细解释_第5页
资源描述:

《js作用域详细解释》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、注意细节.is变量作用域Postedon2008-07-2910:53aming阅读(603)评论⑴编辑收藏先石一下这段Javascript脚木代码:1〈scriptlanguage="javascriptn>210alert出來的足什么?在我们S•來应该足”aaa",变际上alert出來的是”undefined1’。为什么?因为Javascript为丁简化处理,变

2、世劣际上只有两种作用域,个局变量和函数的内部变量,你在函数内部任何一个地方定义的变li其作用域都是整个函数体。而在alert的时候函数的内部变v已经定义丁,并IL按盖掉丁同名的全局变过的走义,只足还没旮被初始化,所以alert岀米的足’’undefined"。I.什么是全局变量?JavaScript屮的今:局变以实际上指的足window对象下的对象厲性。2.作用域划分。JavaScript屮的作川域足基f•上卜‘文,以闲数进行划分的,ifu不足由块(block)划分的接下來石一个例子(原例來自《精通Ja

3、vaScript》,有改动):〈scripttype=',text/javascript">//设置全局变ttfoo,并置为lest”varfoo="test";if(true){//注意:现在还在余局作用域屮varfoo="newtest";}//如我们所见,现在foo等于'newtest’了alert(foo);//创建一个会修改变Idfoo的新函数functiontest(){//函数内部记义变蜇不影响仝局变i±varfoo="oldtest";//隐式定义全局变过val='hello!';I//

4、然而在调用test函数时,foo只在函数作用域内起作用test();//确认foo还是等J'newtest'alert(foo);//全局变量实际足window下的属性aleruwindow.too);/zm数pj部隐式定义的全W变Walert(val);现在你人概对JavaScript的作川域有•f一个初步的理解。要强凋的叫点足:1.在同一作川域屮,JavaScript允许变fi的i紅定义的.并H.后一个定义格祀盖前一个定义。2.函数内部如果不加关键字var而定义的变量,默认为全局变

5、最,JavaScript作用域任何程序设计语言都有作用域的概念,简单的说,作川域就是变量与函数的可访问范围,即作用域控制着变量与函数的可见性和生命周期。在JavaScript中,变量的作用域有全局作用域和局部作用域两种。1.全局作用域(GlobalScope)在代码中任何地方都能访问到的对象拥有全局作用域,一般來说一下几种情形拥有全局作用域:(1)最外层函数和在最外层函数外Ifif定义的变量拥有全局作用域,例如:代码如下:varauthorName="山边小溪";functiondoSomething(

6、){varblogName=•’梦想天空functioninnerSay(){alert(blogName);innerSayO;alert(authorName);//山边小溪alert(blogName);//脚本错误doSomething();//梦想天空innerSayO//脚本错误(1)所有末定义直接赋值的变量自动声明为拥有全局作用域,例如:代码如下:functiondoSomething(){varauthorName=”山边小溪’•;blogName=n梦想天空";alert(author

7、Name);alert(blogName);//梦想天空alert(authorName);//脚本错误变量blogName拥有全局作川域,而authorName在函数外部无法访问到。(2)所有window对象的属性拥有全局作用域—般情况下,window对象的内置属性都都拥有全局作用域,例如window.name、window.location、window.top等等。1.局部作用域(LocalScope)和全局作用域相反,局部作用域一般只在固定的代码片段内可访问到,S常见的例如函数内部,所有在一些地

8、方也会看到有人把这种作川域成力函数作用域,例如下列代码巾的blogName和函数innerSay都只拥有局部作用域。代码如下:functiondoSomething(){varblogName="梦想天空";functioninnerSayO{cilert(blogName);innerSayO;}alert(blogName);//脚本错误innerSayO;//脚本错误作用域链(ScopeChain)在JavaScript屮,函数也是对

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。