干熟妇在线视频午夜剧场一级A级|99成人香视频日本两性激情视频|久久 午夜福利无码精品人妻一区|热久久超碰精品精品少妇一区二区|五月天综合在线国产一区免费视频|亚洲成人中心热re久久99|亚洲国产怡红院丁香五月综合h|玖玖九久久久午夜射精视频

十二年專注于品牌網(wǎng)站建設(shè) 十余年專注于網(wǎng)站建設(shè)_小程序開發(fā)_APP開發(fā),低調(diào)、敢創(chuàng)新、有情懷!
南昌百恒網(wǎng)絡(luò)微信公眾號(hào) 掃一掃關(guān)注
小程序
tel-icon全國(guó)服務(wù)熱線:400-680-9298,0791-88117053
掃一掃關(guān)注百恒網(wǎng)絡(luò)微信公眾號(hào)
掃一掃打開百恒網(wǎng)絡(luò)微信小程序

百恒網(wǎng)絡(luò)

南昌百恒網(wǎng)絡(luò)

結(jié)合經(jīng)典實(shí)例詳細(xì)介紹ECMAScript switch語(yǔ)句規(guī)則及應(yīng)用

百恒網(wǎng)絡(luò) 2012-02-28 5251

switch語(yǔ)句

switch語(yǔ)句與if語(yǔ)句的關(guān)系最為密切,而且也是在其他語(yǔ)言中普遍使用的一種流控制語(yǔ)句。ECMAScript中switch語(yǔ)句的語(yǔ)法與其他基于C的語(yǔ)言非常接近,如下所示:

switch (expression) {

case value: statement

break;

case value: statement

break:

case value: statement

break;

case value: statement

break;

default: statement

}

switch語(yǔ)句中的每一種情形(case)的含義是:"如果表達(dá)式等于這個(gè)值(value),則執(zhí)行后面的語(yǔ)句( statement)"。而break關(guān)鍵字會(huì)導(dǎo)致代碼執(zhí)行流跳出switch語(yǔ)句,如果省略break關(guān)鍵字,就會(huì)導(dǎo)致執(zhí)行完當(dāng)前case后,繼續(xù)執(zhí)行下一個(gè)case。最后的default關(guān)鍵字則用于在表達(dá)式不匹配 前面任何一種情形的時(shí)候,執(zhí)行機(jī)動(dòng)代碼(因此,也相當(dāng)于一個(gè)else語(yǔ)句)。

從根本上講,switch語(yǔ)句就是為了讓開發(fā)人員免于編寫像下面這樣的代碼:

var i=25;

if (i==25){

alert( "25");

} else if (i==35) {

alert( "35");

} else if (i==45) {

alert("45");

}else(

alert( "Other");

}

而與此等價(jià)的switch語(yǔ)句如下所示:

var i=25;

switch (i) {

case 25:

alert("25");

break;

case 35:

alert("35");

break;

case 45:

alert("45");

break:

default:

alert( "Other");

}

通過為每個(gè)case后面都添加一個(gè)break語(yǔ)句,就可以避免同時(shí)執(zhí)行多個(gè)case代碼的情況。假如確實(shí)需要混合幾種情形,不要忘了在代碼中添加注釋,說明你是有意省略了break關(guān)鍵字,如下所示:

var i=25;

switch (i) {

case 25:

case 35:

alert("25 0r 35");

break;

case 45:

alert("45");

break:

default:

alert("Other");

}

雖然ECMAScript中的switch語(yǔ)句借鑒自其他語(yǔ)言,

但南昌網(wǎng)頁(yè)設(shè)計(jì)公司前端開發(fā)工程師認(rèn)為,這個(gè)語(yǔ)句也有自己的特色。首先,可以在switch語(yǔ)句中使用任何數(shù)據(jù)類型(在很多其他語(yǔ)言中只能使用數(shù)值),無論是字符串,還是對(duì)象都沒有問題。其次,每個(gè)case的值不一定是常量,可以是變量,甚至是表達(dá)式。請(qǐng)看下面這個(gè)例子:

switch( "hello world") {

case "hello"+"world":

alert( "Greeting was found.");

break;

case "goodbye":

alert( "Closing was found.");

break:

default:

alert("Unexpected message was found.");

}

在這個(gè)例子中,switch語(yǔ)句使用的就是字符串。其中,第一種情形實(shí)際上是一個(gè)對(duì)字符串拼接操作求值的表達(dá)式。由于這個(gè)字符串拼接表達(dá)式的結(jié)果與switch的參數(shù)相等,因此結(jié)果就會(huì)顯示"Greeting was found."。而且,使用表達(dá)式作為case值還可以實(shí)現(xiàn)下列操作:

var num=25;

switch(true) {

case num<0:

alert( "Less than 0.");

break:

case num>=0&&num<=10:

alert("Between O and 10.");

break;

case num>10&&num<=20:

alert(¨Between 10 and 20.");

break;

default:

alert( "More than 20.");

}

這個(gè)例子首先在switch語(yǔ)句外面聲明了變量num。而之所以給switch語(yǔ)句傳遞表達(dá)式true,是因?yàn)槊總€(gè)case值都可以返回一個(gè)布爾值。這樣,每個(gè)case按照順序被求值,直到找到匹配的值或者遇到default語(yǔ)句為止(這正是這個(gè)例子的最終結(jié)果)。

南昌建網(wǎng)站公司前端開發(fā)工程師提醒,switch語(yǔ)句在比較值時(shí)僅用的是全等操作符,因此不會(huì)發(fā)生類型轉(zhuǎn)換(例如,字符串"10"不等于數(shù)值10)。


400-680-9298,0791-88117053
掃一掃關(guān)注百恒網(wǎng)絡(luò)微信公眾號(hào)
掃一掃打開百恒網(wǎng)絡(luò)小程序

歡迎您的光顧,我們將竭誠(chéng)為您服務(wù)×

售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售后服務(wù) 售后服務(wù)
 
售后服務(wù) 售后服務(wù)
 
備案專線 備案專線
 
×