JavaScript var關鍵字、變量的狀態、異常處理、命名規范等介紹


  本篇主要介紹var關鍵字、變量的undefined和null狀態、異常處理、命名規范。

目錄

1. var 關鍵字:介紹var關鍵字的使用。

2. 變量的狀態:介紹變量的未定義、已定義未賦值、已定義已賦值 三種狀態。

3. JS異常:介紹對JS異常的處理。

4. 命名規范:介紹Js的基本命名規范。

 

1. var 關鍵字

1.1 作用

  聲明作用;如聲明個變量。

1.2 語法  

var c = 1;

1.3 省略var

在javascript中,若省略var關鍵字而直接賦值,那么這個變量為全局變量,哪怕是在function里定義的。

<script type="text/javascript">
    function Define() {
        a = 2;
    }
    function Hello() {
        alert(a);
    }
</script>

如代碼所示,運行函數Define()后,變量a聲明為全局變量。在Hello()函數中可以引用變量a。

 

2. 變量的狀態

變量的狀態一般有三種:未定義、已定義未賦值、已定義已賦值。

前面兩種狀態不處理好,往往會造成異常現象。

2.1 變量未定義

2.1.1 異常說明

代碼引用了一個未定義的變量后,瀏覽器會報錯:變量未定義。

2.1.2 判斷變量是否定義

可通過typeof()方法來判斷變量是否未定義(已定義未賦值的變量也會顯示undefined)。

<script type="text/javascript">
    function Show() {
        if (typeof (b) == "undefined") {
            alert("變量b未定義");
        }
    }
</script>

2.2 已定義未賦值

2.2.1 代碼示例

<script type="text/javascript">
    var a;
    function Show() {
        alert(a);//輸出 undefined
    }
</script>

2.2.2 判斷是否未賦值

function Show() {
    var a;
    if (typeof (a) == 'undefined' && a == null)
        alert("a未賦值");
    }
}

 

3. JS異常

javascript的異常處理有三個關鍵字:try、catch、throw

try:包含可能出錯的js語句。

catch:捕獲出現的錯誤。

throw:創建自定義錯誤。

3.1 try、catch 系統默認異常信息

var erra;
function ShowError() {
    try {
        erra = errb; //errb未定義
        alert(erra);
    } catch (ex) {
        alert(ex); //輸出異常信息:(Chrome)errb is not defined ,(IE)'errb'未定義
    }
}

3.2 try、catch、throw 自定義異常信息

 要加一個條件判斷:

function ShowError() {
    try {
        if (typeof (errb) == "undefined")
            throw "errb未定義";
        erra = errb;
    } catch (ex) {
        alert(ex); //輸出異常信息:(Chrome和IE)"errb未定義"
    }
}

3.3 異常捕獲使用場景

1. 未捕獲異常,瀏覽器會提示錯誤,有損用戶體驗:

IE中,未捕獲的異常,會在左下角提示”網頁上有錯誤":

 

Chrome中,除非打開(F12)開發者工具,才會跳到異常地方。否則會被瀏覽器自動忽略。

2. 獲取異常信息幫助代碼改進

可在catch塊中,通過ajax把捕獲的異常信息發送到服務器,以幫助代碼改進。

 

4. 命名規范

首先JavaScript是區分大小寫,以下只是便於閱讀和維護,而不是必須的:

1.函數名稱采用駱駝命名法:第一個單詞小寫,第二個單詞首個字母為大寫。如系統自帶的函數:parseInt、isNaN

2.對象名稱第一個字母大寫。如:Math、Number、Array

3.事件多為on開頭,並且小寫。如:onclick、onload

更多信息可閱讀:3.10 Js的開發規范

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM