解析JavaScript中的標簽語句
更新時間:2013年06月19日 15:17:27 作者:
本篇文章是對JavaScript中的標簽語句進行了詳細的分析介紹,需要的朋友參考下
Javascript中標簽(label)是一個標識符。標簽可以與變量重名,它是一個獨立的語法元素(既不是變量,也不是類型),其作用是標識”標簽化語句(labeled statement)”
標簽聲明
標簽(label)可以聲明在任何一個語句前面,或者語句塊前,以使得語句或語句塊被“標簽化(labeled)”。
label1:
myFun1();
label2:{
var i = 1, j = 2;
var k = i + j;
}
注意:當(dāng)標簽(label)后面連續(xù)多條語句時,只有第一條語句被標簽化
雖然GOTO是Javascript的保留關(guān)鍵字,但是里沒有GOTO語句。除了GOTO外,Javascript里有另外三個關(guān)鍵字可以改變程序的流程:break,continue和return。其中break和continue可以和標簽(label)一起使用。
break與標簽
break通常用于跳出for、while循環(huán)和跳出switch語句。默認情況下,break子句作用于循環(huán)語句的最內(nèi)層,或者整個switch語句,因此它不必特別地指定中斷語句的范圍。但break子句具有一種擴展語法,以指示其作用范圍。
break my_label;
除了可以跳出循環(huán)和switch分支,還可以跳出標簽化語句(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與標簽
continue僅對循環(huán)語句有意義,因此它只能作用于for、for…in、while和do…while這些語句的內(nèi)部。默認情況下,它表明停止當(dāng)前循環(huán)并跳轉(zhuǎn)到下一次循環(huán)迭代開始處運行。
continue后面也可以帶一個標簽(label),這時表明從循環(huán)體內(nèi)部中止,并繼續(xù)到標簽(label)指示處開始執(zhí)行,并且這個標簽指示的語句必須是包含此continue的循環(huán)語句。
例如:
loop:
for (var j = 0; j < 5; j++)
{
if (j == 2) continue loop;
document.write("loop: " + j +);
}
上面例子continue + label體現(xiàn)不出label的特殊作用,其實完全可以把label去掉,效果相同。下面再看一個例子
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)才是其意義所在。
標簽聲明
標簽(label)可以聲明在任何一個語句前面,或者語句塊前,以使得語句或語句塊被“標簽化(labeled)”。
label1:
復(fù)制代碼 代碼如下:
myFun1();
label2:{
var i = 1, j = 2;
var k = i + j;
}
注意:當(dāng)標簽(label)后面連續(xù)多條語句時,只有第一條語句被標簽化
雖然GOTO是Javascript的保留關(guān)鍵字,但是里沒有GOTO語句。除了GOTO外,Javascript里有另外三個關(guān)鍵字可以改變程序的流程:break,continue和return。其中break和continue可以和標簽(label)一起使用。
break與標簽
break通常用于跳出for、while循環(huán)和跳出switch語句。默認情況下,break子句作用于循環(huán)語句的最內(nèi)層,或者整個switch語句,因此它不必特別地指定中斷語句的范圍。但break子句具有一種擴展語法,以指示其作用范圍。
break my_label;
除了可以跳出循環(huán)和switch分支,還可以跳出標簽化語句(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與標簽
continue僅對循環(huán)語句有意義,因此它只能作用于for、for…in、while和do…while這些語句的內(nèi)部。默認情況下,它表明停止當(dāng)前循環(huán)并跳轉(zhuǎn)到下一次循環(huán)迭代開始處運行。
continue后面也可以帶一個標簽(label),這時表明從循環(huán)體內(nèi)部中止,并繼續(xù)到標簽(label)指示處開始執(zhí)行,并且這個標簽指示的語句必須是包含此continue的循環(huán)語句。
例如:
loop:
復(fù)制代碼 代碼如下:
for (var j = 0; j < 5; j++)
{
if (j == 2) continue loop;
document.write("loop: " + j +);
}
上面例子continue + label體現(xiàn)不出label的特殊作用,其實完全可以把label去掉,效果相同。下面再看一個例子
復(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)才是其意義所在。
相關(guān)文章
關(guān)于鍵盤事件中keyCode、which和charCode 的兼容性測試
關(guān)于鍵盤事件中keyCode、which和charCode 的兼容性測試...2006-12-12如何做到打開一個頁面,過幾分鐘自動轉(zhuǎn)到另一頁面
如何做到打開一個頁面,過幾分鐘自動轉(zhuǎn)到另一頁面...2007-04-04JS中構(gòu)造函數(shù)的基本特性與優(yōu)缺點
這篇文章介紹了JS中構(gòu)造函數(shù)的基本特性與優(yōu)缺點,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-06-06javascript數(shù)組操作(創(chuàng)建、元素刪除、數(shù)組的拷貝)
這篇文章主要介紹了javascript數(shù)組操作,包括創(chuàng)建、元素的訪問、元素刪除、數(shù)組的拷貝等操作,還有其它示例,需要的朋友可以參考下2014-04-04簡介JavaScript中Boolean.toSource()方法的使用
這篇文章主要介紹了簡介JavaScript中Boolean.toSource()方法的使用,是JS入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下2015-06-06