摘要:如果每個(gè)循環(huán)正常執(zhí)行次,則語(yǔ)句就會(huì)正常執(zhí)行次。但內(nèi)部循環(huán)中的語(yǔ)句帶了一個(gè)參數(shù)要返回到的標(biāo)簽。
最近在閱讀《JavaScript高級(jí)程序設(shè)計(jì)第3版》的過程中,看到了label語(yǔ)句的使用,因?yàn)橹皼]使用過,覺得有必要學(xué)習(xí)一下,特此記錄。
label語(yǔ)句是ECMA中定義的語(yǔ)句,因此不存在兼容性的問題,使用label語(yǔ)句是為了給代碼添加標(biāo)簽,方便將來使用,語(yǔ)法如下:
label: statement //下面是一個(gè)示例: start: for (var i=0; i < count; i++) { alert(i); }
label語(yǔ)句可以與break 和 continue 語(yǔ)句聯(lián)合使用,從而返回代碼中特定的位置。這種聯(lián)合使用的情況多發(fā)生在循環(huán)嵌套的情況下:
var num = 0; outermost: for (var i=0; i < 10; i++) { for (var j=0; j < 10; j++) { if (i == 5 && j == 5) { break outermost; } num++; } } alert(num); //55
在這個(gè)例子中,outermost 標(biāo)簽表示外部的 for 語(yǔ)句。如果每個(gè)循環(huán)正常執(zhí)行 10 次,則 num++ 語(yǔ)句就會(huì)正常執(zhí)行 100次。換句話說,如果兩個(gè)循環(huán)都自然結(jié)束,num 的值應(yīng)該是 100。但內(nèi)部循環(huán)中 的 break語(yǔ)句帶了一個(gè)參數(shù):要返回到的標(biāo)簽。添加這個(gè)標(biāo)簽的結(jié)果將導(dǎo)致 break 語(yǔ)句不僅會(huì)退出內(nèi) 部的 for 語(yǔ)句(即使用變量 j的循環(huán)),而且也會(huì)退出外部的 for 語(yǔ)句(即使用變量 i 的循環(huán))。為此, 當(dāng)變量 i 和 j 都等于 5 時(shí),num 的值正好是55。同樣,continue 語(yǔ)句也可以像這樣與 label 語(yǔ)句聯(lián) 用,如下面的例子所示:
var num = 0; outermost: for (var i=0; i < 10; i++) { for (var j=0; j < 10; j++) { if (i == 5 && j == 5) { continue outermost; } num++; } } alert(num); //95
在這種情況下,continue 語(yǔ)句會(huì)強(qiáng)制繼續(xù)執(zhí)行循環(huán)——退出內(nèi)部循環(huán),執(zhí)行外部循環(huán)。當(dāng) j 是 5 時(shí),continue 語(yǔ)句執(zhí)行,而這也就意味著內(nèi)部循環(huán)少執(zhí)行了 5 次,因此 num 的結(jié)果是 95。
雖然聯(lián)用 break、continue 和 label 語(yǔ)句能夠執(zhí)行復(fù)雜的操作,但如果使用過度,也會(huì)給調(diào)試 帶來麻煩。在此,我們建議如果使用 label 語(yǔ)句,一定要使用描述性的標(biāo)簽,同時(shí)不要嵌套過多的循環(huán)。
----來源《JavaScript高級(jí)程序設(shè)計(jì)第3版》
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/93750.html
摘要:前言基本上,我們每天都在和中的各種語(yǔ)句進(jìn)行著溝通,那些我們經(jīng)常見面的老朋友,或者是未曾見面的新朋友,它們共同維護(hù)著的流程,讓我們的程序穩(wěn)步運(yùn)行。 前言 基本上,我們每天都在和 JavaScript 中的各種語(yǔ)句進(jìn)行著 溝通 ,那些我們經(jīng)常見面的 老朋友,或者是未曾見面的 新朋友 ,它們共同維護(hù)著 JavaScript 的流程,讓我們的程序穩(wěn)步運(yùn)行。那么,你是否對(duì)它們足夠了解呢 如果文章...
摘要:會(huì)自動(dòng)調(diào)用轉(zhuǎn)換函數(shù)將這個(gè)表達(dá)式的結(jié)果轉(zhuǎn)換為一個(gè)布爾值。語(yǔ)句語(yǔ)句與語(yǔ)句的關(guān)系最為密切,而且也是在其他語(yǔ)言中普遍使用的一種流控制語(yǔ)句。 表達(dá)式在 JavaScript 中是短語(yǔ),那么語(yǔ)句就是整句命令。表達(dá)式用來計(jì)算出一個(gè)值,語(yǔ)句用來執(zhí)行以使某件事發(fā)生。從本質(zhì)上看,語(yǔ)句定義了 JavaScript 中的主要語(yǔ)法,語(yǔ)句通常使用一或多個(gè)關(guān)鍵字來完成給定任務(wù)。語(yǔ)句可以很簡(jiǎn)單,例如通知函數(shù)退出;也可...
摘要:表達(dá)式用來計(jì)算出一個(gè)值,語(yǔ)句用來執(zhí)行以使某件事發(fā)生。其中,語(yǔ)句會(huì)立即退出循環(huán),強(qiáng)制繼續(xù)執(zhí)行循環(huán)后面的語(yǔ)句。在執(zhí)行語(yǔ)句之后,結(jié)果顯示。語(yǔ)句語(yǔ)句的作用是指定函數(shù)調(diào)用后的返回值。語(yǔ)句語(yǔ)句的作用是把程序運(yùn)行時(shí)產(chǎn)生的錯(cuò)誤顯式地拋出異常。 表達(dá)式在 JavaScript 中是短語(yǔ),那么語(yǔ)句就是整句命令。表達(dá)式用來計(jì)算出一個(gè)值,語(yǔ)句用來執(zhí)行以使某件事發(fā)生。從本質(zhì)上看,語(yǔ)句定義了 JavaScript...
摘要:上面這段代碼,在中的執(zhí)行結(jié)果是什么呢大家思考分鐘好,分鐘已過,大家有結(jié)果了嗎千萬不要在瀏覽器的控制臺(tái)中去寫這段代碼,雖然結(jié)果和你開始想的結(jié)果一樣,但是,它是錯(cuò)誤的。這是在控制臺(tái)中執(zhí)行的結(jié)果這是在中的執(zhí)行結(jié)果可以看到兩個(gè)結(jié)果是不一樣的。 1. 引言 假設(shè)有這么一道題: for (var i = 0; i < 10; i++) { console.log(i); for (...
摘要:因?yàn)樽柚沽四J(rèn)行為的幾個(gè)常見用法取消默認(rèn)行為參照上例鏈?zhǔn)骄幊涕]包之后章節(jié)詳細(xì)講解和語(yǔ)句和語(yǔ)句用于在循環(huán)中精確地控制代碼的執(zhí)行。其中,語(yǔ)句會(huì)立即退出循環(huán),強(qiáng)制繼續(xù)執(zhí)行循環(huán)后面的語(yǔ)句。只能結(jié)束循環(huán)中的一次過程但不能終止循環(huán)繼續(xù)進(jìn)行。 return 語(yǔ)句 return語(yǔ)句的幾個(gè)特點(diǎn):(1)return語(yǔ)句應(yīng)用范圍只能出現(xiàn)在函數(shù)體內(nèi),出現(xiàn)在代碼中的其他任何地方都會(huì)造成語(yǔ)法錯(cuò)誤(2)return...
閱讀 881·2021-11-15 11:37
閱讀 3619·2021-11-11 16:55
閱讀 3284·2021-11-11 11:01
閱讀 1008·2019-08-30 15:43
閱讀 2755·2019-08-30 14:12
閱讀 695·2019-08-30 12:58
閱讀 3397·2019-08-29 15:19
閱讀 2037·2019-08-29 13:59