JavaScript中的default是一種關(guān)鍵字,它在switch語(yǔ)句中有著重要的作用。在switch語(yǔ)句中,如果沒(méi)有任何一個(gè)case匹配成功,就會(huì)執(zhí)行default語(yǔ)句塊。以下是一個(gè)示例:
switch(day){ case 0: today = "Sunday"; break; case 1: today = "Monday"; break; case 2: today = "Tuesday"; break; case 3: today = "Wednesday"; break; case 4: today = "Thursday"; break; case 5: today = "Friday"; break; case 6: today = "Saturday"; break; default: today = "Unknown"; break; }
在這個(gè)例子中,如果day的值不是0~6之間的任何一個(gè)數(shù),那么就會(huì)執(zhí)行default語(yǔ)句塊中的代碼,把today設(shè)置為"Unknown"。
在default語(yǔ)句塊中,通常會(huì)包含一些錯(cuò)誤處理代碼,例如:
switch(color){ case "red": document.body.style.backgroundColor = "red"; break; case "green": document.body.style.backgroundColor = "green"; break; case "blue": document.body.style.backgroundColor = "blue"; break; default: alert("Invalid color: " + color); break; }
在這個(gè)例子中,如果color不是"red"、"green"或"blue"其中的一個(gè),就會(huì)彈出一個(gè)提示框,提示所選的顏色無(wú)效。
default語(yǔ)句塊并不一定要在switch語(yǔ)句的結(jié)尾,它可以放在任何位置,例如:
switch(answer){ case "yes": showResult("You said yes."); break; default: askAgain("Please answer yes or no."); break; case "no": showResult("You said no."); break; }
在這個(gè)例子中,如果answer是"yes",就會(huì)顯示"You said yes.";如果是"no",就會(huì)顯示"You said no.";如果既不是"yes"也不是"no",就會(huì)提示用戶再次回答。
除了用default關(guān)鍵字實(shí)現(xiàn)默認(rèn)語(yǔ)句塊外,也可以用break語(yǔ)句來(lái)模擬。
switch(choice){ case "A": case "a": showResult("You chose A."); break; case "B": case "b": showResult("You chose B."); break; case "C": case "c": case "D": case "d": showResult("You chose C or D."); break; default: showResult("Please choose A, B, C or D."); break; }
在這個(gè)例子中,如果choice是"A"或"a",就會(huì)顯示"You chose A.";如果是"B"或"b",就會(huì)顯示"You chose B.";如果是"C"、"c"、"D"或"d"中的任何一個(gè),就會(huì)顯示"You chose C or D.";否則就會(huì)顯示"Please choose A, B, C or D."。
總之,default語(yǔ)句塊是switch語(yǔ)句的重要部分,它可以處理任何一種未匹配到的情況,為開(kāi)發(fā)者提供了強(qiáng)大的控制能力。