首頁 >web前端 >js教程 >For循環中分號隔開的3部分的執行順序探討_javascript技巧

For循環中分號隔開的3部分的執行順序探討_javascript技巧

WBOY
WBOY原創
2016-05-16 16:46:431326瀏覽

引發這個問題思考的是一段js程式的運作結果:

複製程式碼 程式碼如下:
var i = 0;
function a(){
for(i=0;i}
}
function b(){
for (i=0;ia();
}
return i;
}
var Result = b();

這段程式的運作結果是Result = 21;

從這段程式中我們可以看出,i在a函數回傳的時候值是20這是沒有問題的。
而在b函數回傳的時候,i的值是20還是21就值得討論了。
問題的本質即:先進行了判斷i
根據執行的結果可以看出,是先執行了i 的。

複製程式碼 程式碼如下:
function a(){
for(i= 0;i// 沒有var i
//這裡的i就是全域變數所有人可以存取
}
}
function b(){
for(i=0;i//alert(i);//同理這裡的i也是全域變量,回傳0且只有一次回傳
a();//這個函數回傳是i=20
//當i=20 經過i 後i=21 那就不符合i}
return i;
}
var Result = b();

在此我們補完for迴圈的執行順序:
以下面程序為例

複製程式碼 程式碼如下:
for(int i=0;i{
}

先執行i=0;i然後執行:i ,i直到最後一次i 後i >=10,此時循環結束。



語句1 在迴圈(程式碼區塊)開始前執行

語句2 定義執行迴圈(程式碼區塊)的條件

語句3 在循環(程式碼區塊)已被執行之後執行
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn