最近2018中文字幕在日韩欧美国产成人片_国产日韩精品一区二区在线_在线观看成年美女黄网色视频_国产精品一区三区五区_国产精彩刺激乱对白_看黄色黄大色黄片免费_人人超碰自拍cao_国产高清av在线_亚洲精品电影av_日韩美女尤物视频网站

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
作用域根據(jù)函數(shù)劃分

一、一個for實例

作用域根據(jù)函數(shù)劃分

創(chuàng)新互聯(lián)長期為上1000+客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為烏審企業(yè)提供專業(yè)的網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè),烏審網(wǎng)站改版等技術(shù)服務(wù)。擁有十多年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

     var pscope3 = document.getElementById('scope3');        function scope3() {            for(var i=0; i<10; i++){ 
               
            }
            echo(pscope3,  i);
        }
        scope3();

作用域根據(jù)函數(shù)劃分

1、函數(shù)在java、C#等語言中,變量i只會在for循環(huán)語句中有定義,循環(huán)結(jié)束,i也就被銷毀了。但在JavaScript中,變量i是定義在scope3()活動對象中的,因此在它定義開始,就可以在函數(shù)內(nèi)部訪問它。

2、打印出的i為“10”。

3、函數(shù)scope3等效于下面的代碼:

作用域根據(jù)函數(shù)劃分

     function scope3() {            var i;            for(i=0; i<10; i++){ 
               
            }
            echo(pscope3,  i);
        }

作用域根據(jù)函數(shù)劃分

 

二、私有作用域的匿名函數(shù)

作用域根據(jù)函數(shù)劃分

     function anonymous() {            var position = 'in anonymous';
            (function(){                for(var i=0; i<10; i++){ 
               
                }
                echo(pscope3, position);//打印顯示"in anonymous"
            })();            //pscope3.innerHTML += i;//報錯        }
        anonymous();

作用域根據(jù)函數(shù)劃分

1、匿名函數(shù)可以用來模仿塊級作用域,避免上面的那個問題。

2、在for循環(huán)外部插入了一個私有作用域。在匿名函數(shù)中定義的任何變量,新航道托福都會在執(zhí)行結(jié)束時被銷毀。

3、上面的那句注釋掉的話,取消注釋的話,就會顯示錯誤信息:“ReferenceError: i is not defined”。

4、作用域的關(guān)系大致如下:

5、position是定義在anonymous函數(shù)中的,但可以在匿名函數(shù)中打印出來,因為anonymous的作用域包住了匿名函數(shù),在匿名函數(shù)中找不到position定義,就往外找。

 

三、try語句catch部分的特殊情況

作用域根據(jù)函數(shù)劃分

     function capture() {            var ex = 'in capture';            try{  
                i;
            }catch(ex){                var position= 'in catch';
                echo(pscope3, ex); //ReferenceError: i is not defined
                var ex = 'is catching';
                echo(pscope3, position);//in catch
                echo(pscope3, ex);//is catching            }
            echo(pscope3, position);//in catch
            echo(pscope3, ex); //in capture 不是catch中賦的值
            echo(pscope3, window.ex); //undefined        }
        capture();

作用域根據(jù)函數(shù)劃分

1、catch的一個參數(shù)ex與capture函數(shù)下的局部變量ex同名。

2、catch中先打印ex,是錯誤信息,然后賦值為“is catching”,打印出來,但很奇怪,catch外面打印的ex是“in capture”,并不是里面覆蓋的值。

3、position在catch中定義,但是可以在catch的外面打印出來。

4、window.ex輸出的是undefined,也就是說ex不是全局的,因此可以推出catch后面的大括號是普通語句塊的性質(zhì)。

5、ex的性質(zhì)可以視為唯一一個把catch語句塊當(dāng)做塊作用域的變量,是catch語句塊的局部變量。


本文名稱:作用域根據(jù)函數(shù)劃分
文章起源:http://fisionsoft.com.cn/article/jcdsji.html