JavaScript 分支結(jié)構(gòu) default 語(yǔ)句
■知識(shí)點(diǎn)
default是switch的子句,可以位于switch內(nèi)任意位置,不會(huì)影響多重分支的正常執(zhí)行。下面結(jié)合示例介紹使用default語(yǔ)句應(yīng)該注意的3個(gè)問(wèn)題。
■實(shí)例設(shè)計(jì)
【示例1】如果default下面還有case子句,應(yīng)該在default后面添加break語(yǔ)句,終止switch結(jié)構(gòu),防止程序突破case條件的限制繼續(xù)執(zhí)行下面的case子句。
var id = 3;
switch ( id ){
default:
console.log( "游客" );
case 1:
console.log( "普通會(huì)員" );
case 2:
console.log( "VIP會(huì)員" );
break;
}
【示例2】在下面的代碼中,JavaScript先檢測(cè)case表達(dá)式的值,由于case表達(dá)式的值都不匹配,則跳轉(zhuǎn)到default子句執(zhí)行,然后繼續(xù)執(zhí)行case 1和case 2子句。但是,最后不會(huì)返回default子句再重復(fù)執(zhí)行。
var id = 3;
switch ( id ) {
default:
console. log("游客");
case 1:
console. log("普通會(huì)員");
case 2:
console. log("VIP 會(huì)員");
}
【示例3】下面的示例使用switch語(yǔ)句設(shè)計(jì)一個(gè)四則運(yùn)算函數(shù)。在switch結(jié)構(gòu)內(nèi),先使用case枚舉4種可預(yù)知的算術(shù)運(yùn)算,當(dāng)然還可以繼續(xù)擴(kuò)展case子句,枚舉所有可能的操作,但是無(wú)法枚舉所有不測(cè),因此最后使用default處理意外情況。
function oper(a,b, opr){
switch (opr){
case "+" : //正常枚舉
return a + b;
case "-" : //正常枚舉
return a - b;
case "*" : //正常枚舉
return a * b;
default: //異常處理
return "非預(yù)期的opr值";
}
}
console.log( oper( 2, 5, "*"));
■小結(jié)
default語(yǔ)句與case語(yǔ)句簡(jiǎn)單比較如下。
語(yǔ)義不同:default為默認(rèn)項(xiàng),case為判例。
功能擴(kuò)展:default選項(xiàng)是唯一的,不可以擴(kuò)展的,而case選項(xiàng)是可擴(kuò)展的,沒(méi)有限制的。
異常處理:default與case扮演的角色不同,case用于枚舉,default用于異常處理。
點(diǎn)擊加載更多評(píng)論>>