解析JavaScript中的標(biāo)簽語(yǔ)句
更新時(shí)間:2013年06月19日 15:17:27 作者:
本篇文章是對(duì)JavaScript中的標(biāo)簽語(yǔ)句進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
Javascript中標(biāo)簽(label)是一個(gè)標(biāo)識(shí)符。標(biāo)簽可以與變量重名,它是一個(gè)獨(dú)立的語(yǔ)法元素(既不是變量,也不是類型),其作用是標(biāo)識(shí)”標(biāo)簽化語(yǔ)句(labeled statement)”
標(biāo)簽聲明
標(biāo)簽(label)可以聲明在任何一個(gè)語(yǔ)句前面,或者語(yǔ)句塊前,以使得語(yǔ)句或語(yǔ)句塊被“標(biāo)簽化(labeled)”。
label1:
myFun1();
label2:{
var i = 1, j = 2;
var k = i + j;
}
注意:當(dāng)標(biāo)簽(label)后面連續(xù)多條語(yǔ)句時(shí),只有第一條語(yǔ)句被標(biāo)簽化
雖然GOTO是Javascript的保留關(guān)鍵字,但是里沒(méi)有GOTO語(yǔ)句。除了GOTO外,Javascript里有另外三個(gè)關(guān)鍵字可以改變程序的流程:break,continue和return。其中break和continue可以和標(biāo)簽(label)一起使用。
break與標(biāo)簽
break通常用于跳出for、while循環(huán)和跳出switch語(yǔ)句。默認(rèn)情況下,break子句作用于循環(huán)語(yǔ)句的最內(nèi)層,或者整個(gè)switch語(yǔ)句,因此它不必特別地指定中斷語(yǔ)句的范圍。但break子句具有一種擴(kuò)展語(yǔ)法,以指示其作用范圍。
break my_label;
除了可以跳出循環(huán)和switch分支,還可以跳出標(biāo)簽化語(yǔ)句(labeled statement)的內(nèi)部
var str = prompt('please input a string','1234567890');
my_label: {
if (str && str.length < 10) {
break my_label:
}
str = str.substr(str.length-10);
}
alert(str);
continue與標(biāo)簽
continue僅對(duì)循環(huán)語(yǔ)句有意義,因此它只能作用于for、for…in、while和do…while這些語(yǔ)句的內(nèi)部。默認(rèn)情況下,它表明停止當(dāng)前循環(huán)并跳轉(zhuǎn)到下一次循環(huán)迭代開(kāi)始處運(yùn)行。
continue后面也可以帶一個(gè)標(biāo)簽(label),這時(shí)表明從循環(huán)體內(nèi)部中止,并繼續(xù)到標(biāo)簽(label)指示處開(kāi)始執(zhí)行,并且這個(gè)標(biāo)簽指示的語(yǔ)句必須是包含此continue的循環(huán)語(yǔ)句。
例如:
loop:
for (var j = 0; j < 5; j++)
{
if (j == 2) continue loop;
document.write("loop: " + j +);
}
上面例子continue + label體現(xiàn)不出label的特殊作用,其實(shí)完全可以把label去掉,效果相同。下面再看一個(gè)例子
document.write("Entering the loop!<br /> ");
outerloop: // This is the label name
for (var i = 0; i < 3; i++)
{
document.write("Outerloop: " + i + "<br />");
for (var j = 0; j < 5; j++)
{
if (j == 3){
continue outerloop;
}
document.write("Innerloop: " + j + "<br />");
}
}
document.write("Exiting the loop!<br /> ");
使用continue label直接跳到外層循環(huán)才是其意義所在。
標(biāo)簽聲明
標(biāo)簽(label)可以聲明在任何一個(gè)語(yǔ)句前面,或者語(yǔ)句塊前,以使得語(yǔ)句或語(yǔ)句塊被“標(biāo)簽化(labeled)”。
label1:
復(fù)制代碼 代碼如下:
myFun1();
label2:{
var i = 1, j = 2;
var k = i + j;
}
注意:當(dāng)標(biāo)簽(label)后面連續(xù)多條語(yǔ)句時(shí),只有第一條語(yǔ)句被標(biāo)簽化
雖然GOTO是Javascript的保留關(guān)鍵字,但是里沒(méi)有GOTO語(yǔ)句。除了GOTO外,Javascript里有另外三個(gè)關(guān)鍵字可以改變程序的流程:break,continue和return。其中break和continue可以和標(biāo)簽(label)一起使用。
break與標(biāo)簽
break通常用于跳出for、while循環(huán)和跳出switch語(yǔ)句。默認(rèn)情況下,break子句作用于循環(huán)語(yǔ)句的最內(nèi)層,或者整個(gè)switch語(yǔ)句,因此它不必特別地指定中斷語(yǔ)句的范圍。但break子句具有一種擴(kuò)展語(yǔ)法,以指示其作用范圍。
break my_label;
除了可以跳出循環(huán)和switch分支,還可以跳出標(biāo)簽化語(yǔ)句(labeled statement)的內(nèi)部
復(fù)制代碼 代碼如下:
var str = prompt('please input a string','1234567890');
my_label: {
if (str && str.length < 10) {
break my_label:
}
str = str.substr(str.length-10);
}
alert(str);
continue與標(biāo)簽
continue僅對(duì)循環(huán)語(yǔ)句有意義,因此它只能作用于for、for…in、while和do…while這些語(yǔ)句的內(nèi)部。默認(rèn)情況下,它表明停止當(dāng)前循環(huán)并跳轉(zhuǎn)到下一次循環(huán)迭代開(kāi)始處運(yùn)行。
continue后面也可以帶一個(gè)標(biāo)簽(label),這時(shí)表明從循環(huán)體內(nèi)部中止,并繼續(xù)到標(biāo)簽(label)指示處開(kāi)始執(zhí)行,并且這個(gè)標(biāo)簽指示的語(yǔ)句必須是包含此continue的循環(huán)語(yǔ)句。
例如:
loop:
復(fù)制代碼 代碼如下:
for (var j = 0; j < 5; j++)
{
if (j == 2) continue loop;
document.write("loop: " + j +);
}
上面例子continue + label體現(xiàn)不出label的特殊作用,其實(shí)完全可以把label去掉,效果相同。下面再看一個(gè)例子
復(fù)制代碼 代碼如下:
document.write("Entering the loop!<br /> ");
outerloop: // This is the label name
for (var i = 0; i < 3; i++)
{
document.write("Outerloop: " + i + "<br />");
for (var j = 0; j < 5; j++)
{
if (j == 3){
continue outerloop;
}
document.write("Innerloop: " + j + "<br />");
}
}
document.write("Exiting the loop!<br /> ");
使用continue label直接跳到外層循環(huán)才是其意義所在。
您可能感興趣的文章:
- javascript語(yǔ)句中的CDATA標(biāo)簽的意義
- javascript新建標(biāo)簽,判斷鍵盤(pán)輸入,以及判斷焦點(diǎn)(示例代碼)
- javascript標(biāo)簽在頁(yè)面中的位置探討
- Javascript獲取標(biāo)簽ID改變style屬性的代碼
- javascript 獲取url參數(shù)和script標(biāo)簽中獲取url參數(shù)函數(shù)代碼
- JavaScript 替換Html標(biāo)簽實(shí)現(xiàn)代碼
- 用javascript來(lái)實(shí)現(xiàn)select標(biāo)簽的美化的代碼
- JavaScript中的標(biāo)簽語(yǔ)句用法分析
相關(guān)文章
關(guān)于鍵盤(pán)事件中keyCode、which和charCode 的兼容性測(cè)試
關(guān)于鍵盤(pán)事件中keyCode、which和charCode 的兼容性測(cè)試...2006-12-12如何做到打開(kāi)一個(gè)頁(yè)面,過(guò)幾分鐘自動(dòng)轉(zhuǎn)到另一頁(yè)面
如何做到打開(kāi)一個(gè)頁(yè)面,過(guò)幾分鐘自動(dòng)轉(zhuǎn)到另一頁(yè)面...2007-04-04超詳細(xì)的JavaScript基本語(yǔ)法規(guī)則
這篇文章主要介紹了JavaScript基本語(yǔ)法規(guī)則,保姆級(jí)的詳細(xì)教程,萬(wàn)字長(zhǎng)文詳細(xì)的列出了JavaScript的各種語(yǔ)法,建議收藏系列,希望可以有所幫助2021-08-08JavaScript?Hoisting變量提升機(jī)制實(shí)例解析
這篇文章主要為大家介紹了JavaScript變量提升Hoisting機(jī)制實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11JS中構(gòu)造函數(shù)的基本特性與優(yōu)缺點(diǎn)
這篇文章介紹了JS中構(gòu)造函數(shù)的基本特性與優(yōu)缺點(diǎn),文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06javascript數(shù)組操作(創(chuàng)建、元素刪除、數(shù)組的拷貝)
這篇文章主要介紹了javascript數(shù)組操作,包括創(chuàng)建、元素的訪問(wèn)、元素刪除、數(shù)組的拷貝等操作,還有其它示例,需要的朋友可以參考下2014-04-04簡(jiǎn)介JavaScript中Boolean.toSource()方法的使用
這篇文章主要介紹了簡(jiǎn)介JavaScript中Boolean.toSource()方法的使用,是JS入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-06-06