JavaScript 循環(huán):
for - 循環(huán)代碼塊一定的次數(shù)
for/in - 循環(huán)遍歷對(duì)象的屬性
while - 當(dāng)指定的條件為 true 時(shí)循環(huán)指定的代碼塊
do/while - 同樣當(dāng)指定的條件為 true 時(shí)循環(huán)指定的代碼塊
For 循環(huán)
語法:
for (語句 1; 語句 2; 語句 3)
{
被執(zhí)行的代碼塊
}
語句 1 (代碼塊)開始前執(zhí)行
語句 2 定義運(yùn)行循環(huán)(代碼塊)的條件
語句 3 在循環(huán)(代碼塊)已被執(zhí)行之后執(zhí)行
<body>
<p>點(diǎn)擊按鈕循環(huán)代碼5次谦屑。</p>
<button onclick="myFunction()">點(diǎn)擊這里</button>
<p id="demo"></p>
<script>
function myFunction(){
var x="";
for (var i=0;i<5;i++){
x=x + "該數(shù)字為 " + i + "<br>";
}
document.getElementById("demo").innerHTML=x;
}
</script>
</body>
語句 1 初始化循環(huán)中所用的變量以在語句 1 中初始化任意(或者多個(gè))值畴蒲。
語句 2 用于評(píng)估初始變量的條件西疤。如果語句 2 返回 true蜒简,則循環(huán)再次開始,如果返回 false府阀,則循環(huán)將結(jié)束缆镣。
語句 3 會(huì)增加初始變量的值,增量可以是負(fù)數(shù) 试浙。
三個(gè)語句都是可選的董瞻,都可省略。
注意:
如果您省略了語句 2田巴,那么必須在循環(huán)內(nèi)提供 break钠糊。否則循環(huán)就無法停下來。這樣有可能令瀏覽器崩潰壹哺。
語句 3 也可以省略(比如當(dāng)循環(huán)內(nèi)部有相應(yīng)的代碼時(shí))抄伍。
For/In 循環(huán)
JavaScript for/in 語句循環(huán)遍歷對(duì)象的屬性:
var person={fname:"John",lname:"Doe",age:25};
for (x in person) // x 為屬性名
{
txt=txt + person[x];
}
for in 循環(huán)不僅可以遍歷對(duì)象的屬性管宵,還可以遍歷數(shù)組。
for...in 循環(huán)會(huì)自動(dòng)跳過那些沒被賦值的元素岗喉,而 for 循環(huán)則不會(huì)炸庞,它會(huì)顯示出 undefined。
<button onclick="myFunction()">點(diǎn)擊這里</button>
<p id="demo"></p>
<script>
function myFunction(){
var array = new Array();
var x;
var txt=""
array[0] = 1;
array[3] = 2;
array[4] = 3;
array[10] = 4;
for( x in array ){
alert(array[x]); // 依次顯示出 1 2 3 4
}
alert(array.length); // 結(jié)果是11
for( var i=0 ; i<4 ; i++){
alert(array[i]); // 依次顯示出 1 undefined undefined 2
}
document.getElementById("demo").innerHTML = txt;
}
</script>
while 循環(huán)
while 循環(huán)會(huì)在指定條件為真時(shí)循環(huán)執(zhí)行代碼塊诞丽。
只要指定條件為 true拐格,循環(huán)就可以一直執(zhí)行代碼塊。
while (條件)
{
需要執(zhí)行的代碼
}
while (i<5)
{
x=x + "The number is " + i + "<br>";
i++;
}
如果忘記增加條件中所用變量的值懂衩,該循環(huán)永遠(yuǎn)不會(huì)結(jié)束金踪。
do/while 循環(huán)
do/while 循環(huán)是 while 循環(huán)的變體。該循環(huán)會(huì)在檢查條件是否為真之前執(zhí)行一次代碼塊胡岔,然后如果條件為真的話,就會(huì)重復(fù)這個(gè)循環(huán)苫亦。
do/while 循環(huán)怨咪。該循環(huán)至少會(huì)執(zhí)行一次,即使條件為 false 它也會(huì)執(zhí)行一次诗眨,
do
{
x=x + "The number is " + i + "<br>";
i++;
}
while (i<5);
Break 和 Continue 語句
break 語句用于跳出循環(huán)匠楚。
break 語句跳出循環(huán)后,會(huì)繼續(xù)執(zhí)行該循環(huán)之后的代碼(如果有的話):
for (i=0;i<10;i++)
{
if (i==3)
{
break; // if 語句只有一行代碼芋簿,所以可以省略花括號(hào)
}
x=x + "The number is " + i + "<br>";
}
/*
結(jié)果為:
該數(shù)字為 0
該數(shù)字為 1
該數(shù)字為 2
*/
continue 用于跳過循環(huán)中的一個(gè)迭代。
for (i=0;i<=10;i++)
{
if (i==3) continue;
x=x + "The number is " + i + "<br>";
}
/*結(jié)果為:
該數(shù)字為 0
該數(shù)字為 1
該數(shù)字為 2
該數(shù)字為 4
該數(shù)字為 5
該數(shù)字為 6
該數(shù)字為 7
該數(shù)字為 8
該數(shù)字為 9
*/
標(biāo)記 JavaScript 語句逮诲,請(qǐng)?jiān)谡Z句之前加上冒號(hào):
label:
statements
continue 語句(帶有或不帶標(biāo)簽引用)只能用在循環(huán)中幽告。
break 語句(不帶標(biāo)簽引用),只能用在循環(huán)或 switch 中齐唆。
通過標(biāo)簽引用冻河,break 語句可用于跳出任何 JavaScript 代碼塊:
cars=["BMW","Volvo","Saab","Ford"];
list:
{
document.write(cars[0] + "<br>");
document.write(cars[1] + "<br>");
document.write(cars[2] + "<br>");
break list;
document.write(cars[3] + "<br>");
document.write(cars[4] + "<br>");
document.write(cars[5] + "<br>");
}
/*BMW
Volvo
Saab
*/
有了標(biāo)簽茉帅,可以使用break和continue在多層循環(huán)的時(shí)候控制外層循環(huán)锭弊。
<script>
outerloop:
for (var i = 0; i < 10; i++)
{
innerloop:
for (var j = 0; j < 10; j++)
{
if (j > 3)
{
break;
}
if (i == 2)
{
break innerloop;
}
if (i == 4)
{
break outerloop;
}
document.write("i=" + i + " j=" + j +"<br/>");
}
}
</script>
/*i=0 j=0
i=0 j=1
i=0 j=2
i=0 j=3
i=1 j=0
i=1 j=1
i=1 j=2
i=1 j=3
i=3 j=0
i=3 j=1
i=3 j=2
i=3 j=3
*/