1. 程式人生 > >JavaScript基礎---異常US信用盤平臺出租處理和循環語句

JavaScript基礎---異常US信用盤平臺出租處理和循環語句

cep cti java console 包含 可用 lse script 其他

你可以US信用盤平臺出租 haozbbs.com Q1446595067 用 throw 語句拋出一個異常並且用 try...catch 語句捕獲處理它

throw 語句
try...catch 語句

1.throw語句

使用throw語句拋出一個異常。當你拋出異常,你規定一個含有值的表達式要被拋出。

語法:throw expression;

你可以拋出任意表達式而不是特定一種類型的表達式。下面的代碼拋出了幾個不同類型的表達式

throw "Error2";   // String type
throw 42;         // Number type
throw true;       // Boolean type
throw {toString: function() { return "I‘m an object!"; } };

2.try...catch 語句

try...catch 語句標記一塊待嘗試的語句,並規定一個以上的響應應該有一個異常被拋出。如果我們拋出一個異常,try...catch語句就捕獲它

try...catch 語句有一個包含一條或者多條語句的try代碼塊,0個或多個的catch代碼塊,catch代碼塊中的語句會在try代碼塊中拋出異常時執行。 換句話說,如果你在try代碼塊中的代碼如果沒有執行成功,那麽你希望將執行流程轉入catch代碼塊。如果try代碼塊中的語句(或者try 代碼塊中調用的方法)一旦拋出了異常,那麽執行流程會立即進入catch 代碼塊。如果try代碼塊沒有拋出異常,catch代碼塊就會被跳過。finally 代碼塊總會緊跟在try和catch代碼塊之後執行,但會在try和catch代碼塊之後的其他代碼之前執行

catch塊來處理所有可能在try塊中產生的異常,捕捉塊指定了一個標識符(上述語句中的catchID)來存放拋出語句指定的值;你可以用這個標識符來獲取拋出的異常信息。在插入throw塊時JavaScript創建這個標識符;標識符只存在於catch塊的存續期間裏;當catch塊執行完成時,標識符不再可用

finally塊無論是否拋出異常都會執行。如果拋出了一個異常,就算沒有異常處理,finally塊裏的語句也會執行

    function getMonthName(mo) {
        mo = mo - 1; // Adjust month number for array index (1 = Jan, 12 = Dec)
        let months = ["Jan","Feb","Mar","Apr","May","Jun","Jul",
            "Aug","Sep","Oct","Nov","Dec"];
        if (months[mo]) {
            return months[mo];
        } else {
            throw "InvalidMonthNo"; //throw error
        }
    }
    let monthName,myMonth = 15;
    try { // statements to try
        monthName = getMonthName(myMonth); // function could throw exception
    }
    catch (e) {
        console.log(e); //"InvalidMonthNo"
        monthName = "unknown";
    }

3.Error對象

    function getMonthName(mo) {
        mo = mo - 1; // Adjust month number for array index (1 = Jan, 12 = Dec)
        let months = ["Jan","Feb","Mar","Apr","May","Jun","Jul",
            "Aug","Sep","Oct","Nov","Dec"];
        if (months[mo]) {
            return months[mo];
        } else {
            throw (new Error("InvalidMonthNo")); //throw error
        }
    }
    let monthName,myMonth = 15;
    try { // statements to try
        monthName = getMonthName(myMonth); // function could throw exception
    }
    catch (e) {
        console.log(e); //Error: InvalidMonthNo
        monthName = "unknown";
    }

二、循環語句

JavaScript中提供了這些循環語句:

for 語句
do...while 語句
while 語句
label 語句
break 語句
continue 語句
for...in 語句
for...of 語句

1.for 語句

語法:for ([initialExpression]; [condition]; [incrementExpression]) { statement }

    let sum = 0;
    for (let i = 1; i < 100 ; i++) {
        sum += i;
    }
    console.log(sum); //4950

2.do...while 語句

語法:do { statement } while (condition);

    let sum = 0, i = 1;
    do {
        sum += i;
        i++;
    } while (i < 100);
    console.log(sum); //4950

3.while 語句

語法:while (condition) { statement }

    let sum = 0, i = 1;
    while (i < 100) {
        sum += i;
        i++;
    }
    console.log(sum); //4950

4.label 語句

語法:label : statement

使用一個標簽來唯一標記一個循環,然後使用 break 或 continue 語句來指示程序是否中斷循環或繼續執行

    loop1:
    for (let i = 0; i < 3; i++) {
        loop2:
        for (let j = 0; j < 3; j++) {
            if (i === 1 && j === 1) {
                continue loop1;
            }
            console.log(`i=${i},j=${j}`);
            /**
             i=0,j=0
             i=0,j=1
             i=0,j=2
             i=1,j=0
             i=2,j=0
             i=2,j=1
             i=2,j=2
             */
        }
    }

    loop1:
    for (let i = 0; i < 3; i++) {
        loop2:
        for (let j = 0; j < 3; j++) {
            if (i === 1 && j === 1) {
                break loop1;
            }
            console.log(`i=${i},j=${j}`);
            /**
             i=0,j=0
             i=0,j=1
             i=0,j=2
             i=1,j=0
             */
        }
    }

5.break 語句

使用 break 語句來終止循環,switch, 或者是終止 label 語句

當你使用不帶 label 的 break 時, 它會立即終止當前所在的 while,do-while,for,或者 switch 並把控制權交回這些結構後面的語句
當你使用帶 label 的 break 時,它會終止指定的標記(label)的語句

    for (let i = 0; i < 3; i++) {
        for (let j = 0; j < 3; j++) {
            if (i === 1 && j === 1) {
                break;
            }
            console.log(`i=${i},j=${j}`);
            /**
             i=0,j=0
             i=0,j=1
             i=0,j=2
             i=1,j=0
             i=2,j=0
             i=2,j=1
             i=2,j=2
             */
        }
    }

6.continue 語句

這個 continue 語句可以用來繼續執行(跳過代碼塊的剩余部分並進入下一循環)一個 while, do-while, for, 或者 label 語句

當你使用不帶 label 的 continue 時, 它終止當前 while,do-while,或者 for 語句到結尾的這次的循環並且繼續執行下一次循環
當你使用帶 label 的 continue 時, 它會應用被 label 標識的循環語句

    for (let i = 0; i < 3; i++) {
        for (let j = 0; j < 3; j++) {
            if (i === 1 && j === 1) {
                continue;
            }
            console.log(`i=${i},j=${j}`);
            /**
             i=0,j=0
             i=0,j=1
             i=0,j=2
             i=1,j=0
             i=1,j=2
             i=2,j=0
             i=2,j=1
             i=2,j=2
             */
        }
    }

7.for...in 語句

for...in 語句來循環一個對象所有可枚舉的屬性。JavaScript 會為每一個不同的屬性執行指定的語句。可以遍歷Json對象

語法:for (variable in object) { statements }

    let array = [‘a‘,‘b‘,‘c‘,‘d‘,‘e‘];
    let obj = {
        ‘a‘:1,
        ‘b‘:2,
        ‘c‘:3,
        ‘d‘:4,
        ‘e‘:5
    };
    for (let k in array){
        console.log(k); //0 1 2 3 4
    }
    for (let k in obj) {
        console.log(`key:${k},value:${obj[k]}`);
        /**
         key:a,value:1
         key:b,value:2
         key:c,value:3
         key:d,value:4
         key:e,value:5
         */
    }

8.for...of 語句

語法:for (variable of object) { statement }

    let array = [‘a‘,‘b‘,‘c‘,‘d‘,‘e‘];
    for (let v of array){
        console.log(v); //a b c d e
    }

JavaScript基礎---異常US信用盤平臺出租處理和循環語句