JavaScript基礎---異常US信用盤平臺出租處理和循環語句
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信用盤平臺出租處理和循環語句