Javascript基礎(chǔ)教程之switch語(yǔ)句
switch 語(yǔ)句用于基于不同條件執(zhí)行不同動(dòng)作。
JavaScript Switch 語(yǔ)句
請(qǐng)使用 switch 語(yǔ)句來(lái)選擇多個(gè)需被執(zhí)行的代碼塊之一。
語(yǔ)法
switch(表達(dá)式) {
case n:
代碼塊
break;
case n:
代碼塊
break;
default:
默認(rèn)代碼塊
} 代碼解釋:
- 計(jì)算一次 switch 表達(dá)式
- 把表達(dá)式的值與每個(gè) case 的值進(jìn)行對(duì)比
- 如果存在匹配,則執(zhí)行關(guān)聯(lián)代碼
實(shí)例
getDay() 方法返回 0 至 6 之間的周名數(shù)字(weekday number)。
(Sunday=0, Monday=1, Tuesday=2 ..)
本例使用周名數(shù)字來(lái)計(jì)算周的名稱:
switch (new Date().getDay()) {
case 0:
day = "星期天";
break;
case 1:
day = "星期一";
break;
case 2:
day = "星期二";
break;
case 3:
day = "星期三";
break;
case 4:
day = "星期四";
break;
case 5:
day = "星期五";
break;
case 6:
day = "星期六";
} 結(jié)果將是:
今天是星期五
完整測(cè)試代碼
<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>
<script>
var day;
switch (new Date().getDay()) {
case 0:
day = "周日";
break;
case 1:
day = "周一";
break;
case 2:
day = "周二";
break;
case 3:
day = "周三";
break;
case 4:
day = "周四";
break;
case 5:
day = "周五";
break;
case 6:
day = "周六";
}
document.getElementById("demo").innerHTML = "今天是" + day;
</script>
</body>
</html>
break 關(guān)鍵詞
如果 JavaScript 遇到 break 關(guān)鍵詞,它會(huì)跳出 switch 代碼塊。
此舉將停止代碼塊中更多代碼的執(zhí)行以及 case 測(cè)試。
如果找到匹配,并完成任務(wù),則隨機(jī)中斷執(zhí)行(break)。無(wú)需更多測(cè)試。
break 能夠節(jié)省大量執(zhí)行時(shí)間,因?yàn)樗鼤?huì)“忽略” switch 代碼塊中的其他代碼的執(zhí)行。
不必中斷 switch 代碼塊中的最后一個(gè) case。代碼塊在此處會(huì)自然結(jié)束。
default 關(guān)鍵詞
default 關(guān)鍵詞規(guī)定不存在 case 匹配時(shí)所運(yùn)行的代碼:
實(shí)例
getDay() 方法返回 0 至 6 的數(shù)字周名。
如果今日既不是周六(6)也不是周日(0),則輸出一段默認(rèn)消息:
switch (new Date().getDay()) {
case 6:
text = "今天是周六";
break;
case 0:
text = "今天是周日";
break;
default:
text = "期待周末~";
} 完整測(cè)試代碼
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript switch</h2>
<p id="demo"></p>
<script>
var text;
switch (new Date().getDay()) {
case 6:
text = "今天是周六";
break;
case 0:
text = "今天是周日";
break;
default:
text = "期待周末";
}
document.getElementById("demo").innerHTML = text;
</script>
</body>
</html>
常見的代碼塊
有時(shí)您會(huì)需要不同的 case 來(lái)使用相同的代碼。
在本例中,case 4 和 5 分享相同的代碼塊,而 0 和 6 分享另一段代碼塊:
實(shí)例
switch (new Date().getDay()) {
case 4:
case 5:
text = "周末快到了:)";
break;
case 0:
case 6:
text = "今天是周末~";
break;
default:
text = "期待周末!";
} 完整測(cè)試代碼
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript switch</h2>
<p id="demo"></p>
<script>
var text;
switch (new Date().getDay()) {
case 4:
case 5:
text = "周末馬上就到了";
break;
case 0:
case 6:
text = "今天是周末";
break;
default:
text = "期待周末";
}
document.getElementById("demo").innerHTML = text;
</script>
</body>
</html>
Switching 的細(xì)節(jié)
如果多種 case 匹配一個(gè) case 值,則選擇第一個(gè) case。
如果未找到匹配的 case,程序?qū)⒗^續(xù)使用默認(rèn) label。
如果未找到默認(rèn) label,程序?qū)⒗^續(xù) switch 后的語(yǔ)句。
嚴(yán)格的比較
Switch case 使用嚴(yán)格比較(===)。
值必須與要匹配的類型相同。
只有操作數(shù)屬于同一類型時(shí),嚴(yán)格比較才能為 true。
在這個(gè)例子中,x 將不匹配:
實(shí)例
var x = "0";
switch (x) {
case 0:
text = "Off";
break;
case 1:
text = "On";
break;
default:
text = "No value found";
}下面是其它網(wǎng)友的補(bǔ)充
switch語(yǔ)句的格式一般如下:
switch (expression){
case value :statement1
break;
case value2 :statement2
break;
....
case value: statement
break;
default :statement;
每個(gè)情況表示如果expression的值等于case ,則執(zhí)行statament.
關(guān)鍵詞 break使代碼跳出switch。
如果沒(méi)有關(guān)鍵詞break,代碼則繼續(xù)執(zhí)行下一個(gè)情況。關(guān)鍵詞default是值所有表達(dá)式值不等于value值時(shí),執(zhí)行的結(jié)果。
iwork = parseInt(prompt("請(qǐng)輸入1-5的值"));
switch (iwork) {
case 1 :document.write("星期一")
break;
case 2 : "星期2"
break;
case 3 : "星期3"
break;
case 4 : "星期4"
break;
case 5 : "星期5"
break;
default :"要輸入合理值";
相關(guān)文章
詳解JavaScript中的數(shù)據(jù)類型,以及檢測(cè)數(shù)據(jù)類型的方法
這篇文章主要介紹了JavaScript中的數(shù)據(jù)類型,以及檢測(cè)數(shù)據(jù)類型的方法,幫助大家鞏固基礎(chǔ)知識(shí),感興趣的朋友可以了解下2020-09-09
javascript語(yǔ)言結(jié)構(gòu)小記(一)
今天看了點(diǎn)js語(yǔ)言結(jié)構(gòu)的一部分,我將我比較感興趣地記錄如下,想學(xué)習(xí)js的朋友可以看下。2011-09-09
JavaScript中的prototype原型學(xué)習(xí)指南
這篇文章主要介紹了JavaScript中的prototype原型學(xué)習(xí)指南,包括原型鏈與原型繼承等重要知識(shí),需要的朋友可以參考下2016-05-05
關(guān)于JavaScript的URL.createObjectURL()的使用方法
這篇文章主要介紹了關(guān)于URL.createObjectURL()的使用方法,使用createObjectURL可以節(jié)省性能并更快速,只不過(guò)需要在不使用的情況下手動(dòng)釋放內(nèi)存,還不清楚的朋友一起來(lái)看看吧2023-04-04
JS 模態(tài)對(duì)話框和非模態(tài)對(duì)話框操作技巧匯總
模態(tài)窗口javascript 技巧包括傳值、打開、刷新以及相關(guān)實(shí)例學(xué)習(xí),感興趣的朋友可以參考下哈2013-04-04
JS不用正則驗(yàn)證輸入的字符串是否為空(包含空格)的實(shí)現(xiàn)代碼
下面小編就為大家?guī)?lái)一篇JS不用正則驗(yàn)證輸入的字符串是否為空(包含空格)的實(shí)現(xiàn)代碼。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-06-06

