91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

作用域根據函數劃分

發布時間:2020-07-16 14:30:05 來源:網絡 閱讀:307 作者:張濤澤 欄目:網絡安全

一、一個for實例

<p id="scope3" style="color:red"></p>

作用域根據函數劃分

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

作用域根據函數劃分

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

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

3、函數scope3等效于下面的代碼:

作用域根據函數劃分

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

作用域根據函數劃分

 

二、私有作用域的匿名函數

作用域根據函數劃分

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

作用域根據函數劃分

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

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

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

4、作用域的關系大致如下:


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

 

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

作用域根據函數劃分

     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();

作用域根據函數劃分

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

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

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

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

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


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

民勤县| 菏泽市| 富锦市| 鹤山市| 长寿区| 西青区| 诸城市| 阿坝| 承德县| 康定县| 石嘴山市| 丰台区| 元谋县| 长武县| 宣城市| 池州市| 临桂县| 焉耆| 墨玉县| 庆安县| 五台县| 弋阳县| 西畴县| 桐梓县| 大埔县| 上栗县| 靖宇县| 怀柔区| 全州县| 信丰县| 镇巴县| 友谊县| 和顺县| 安阳市| 视频| 洞头县| 南郑县| 平陆县| 赫章县| 清河县| 仙游县|