For循環(huán)中分號(hào)隔開的3部分的執(zhí)行順序探討
更新時(shí)間:2014年05月27日 10:37:07 作者:
這篇文章主要探討了For循環(huán)中分號(hào)隔開的3部分的執(zhí)行順序,需要的朋友可以參考下
引發(fā)這個(gè)問題思考的是一段js程序的運(yùn)行結(jié)果:
var i = 0;
function a(){
for(i=0;i<20;i++){
}
}
function b(){
for(i=0;i<3;i++){
a();
}
return i;
}
var Result = b();
這段程序的運(yùn)行結(jié)果是Result = 21;
從這段程序中我們可以看出,i在a函數(shù)返回的時(shí)候值是20這是沒有問題的。
而在b函數(shù)返回的時(shí)候,i的值是20還是21就值得討論了。
問題的本質(zhì)即:先進(jìn)行了判斷i<3,還是先進(jìn)行了i++,再判斷是否i<3.
根據(jù)執(zhí)行的結(jié)果可以看出,是先執(zhí)行了i++的。
function a(){
for(i=0;i<20;i++){
// 沒有 var i
//這里的i就是全局變量所有人可以訪問
}
}
function b(){
for(i=0;i<3;i++){
//alert(i);//同理這里的i也是全局變量,返回0且只有一次返回
a();//這個(gè)函數(shù)返回是i=20
//當(dāng)i=20 經(jīng)過 i++后 i=21 那么就不符合i<3的條件,直接退出。所以return i=21 這很正常!
}
return i;
}
var Result = b();
在此我們補(bǔ)完for循環(huán)的執(zhí)行順序:
以下面程序?yàn)槔?
for(int i=0;i<10;i++)
{
}
首先執(zhí)行i=0;i<10; 然后執(zhí)行第一輪循環(huán)體
然后執(zhí)行:i++,i<10; 然后執(zhí)行第二輪循環(huán)體
直到最后一次 i++后 i >=10,此時(shí)循環(huán)結(jié)束。
即
語句 1 在循環(huán)(代碼塊)開始前執(zhí)行
語句 2 定義運(yùn)行循環(huán)(代碼塊)的條件
語句 3 在循環(huán)(代碼塊)已被執(zhí)行之后執(zhí)行
復(fù)制代碼 代碼如下:
var i = 0;
function a(){
for(i=0;i<20;i++){
}
}
function b(){
for(i=0;i<3;i++){
a();
}
return i;
}
var Result = b();
這段程序的運(yùn)行結(jié)果是Result = 21;
從這段程序中我們可以看出,i在a函數(shù)返回的時(shí)候值是20這是沒有問題的。
而在b函數(shù)返回的時(shí)候,i的值是20還是21就值得討論了。
問題的本質(zhì)即:先進(jìn)行了判斷i<3,還是先進(jìn)行了i++,再判斷是否i<3.
根據(jù)執(zhí)行的結(jié)果可以看出,是先執(zhí)行了i++的。
復(fù)制代碼 代碼如下:
function a(){
for(i=0;i<20;i++){
// 沒有 var i
//這里的i就是全局變量所有人可以訪問
}
}
function b(){
for(i=0;i<3;i++){
//alert(i);//同理這里的i也是全局變量,返回0且只有一次返回
a();//這個(gè)函數(shù)返回是i=20
//當(dāng)i=20 經(jīng)過 i++后 i=21 那么就不符合i<3的條件,直接退出。所以return i=21 這很正常!
}
return i;
}
var Result = b();
在此我們補(bǔ)完for循環(huán)的執(zhí)行順序:
以下面程序?yàn)槔?
復(fù)制代碼 代碼如下:
for(int i=0;i<10;i++)
{
}
首先執(zhí)行i=0;i<10; 然后執(zhí)行第一輪循環(huán)體
然后執(zhí)行:i++,i<10; 然后執(zhí)行第二輪循環(huán)體
直到最后一次 i++后 i >=10,此時(shí)循環(huán)結(jié)束。
即
語句 1 在循環(huán)(代碼塊)開始前執(zhí)行
語句 2 定義運(yùn)行循環(huán)(代碼塊)的條件
語句 3 在循環(huán)(代碼塊)已被執(zhí)行之后執(zhí)行
相關(guān)文章
JS監(jiān)控關(guān)閉瀏覽器操作的實(shí)例詳解
這篇文章主要介紹了JS監(jiān)控關(guān)閉瀏覽器操作的實(shí)例詳解的相關(guān)資料,希望通過本大家能幫助到大家,需要的朋友可以參考下2017-09-09
JavaScript實(shí)現(xiàn)找出數(shù)組中最長的連續(xù)數(shù)字序列
這篇文章主要介紹了JavaScript實(shí)現(xiàn)找出數(shù)組中最長的連續(xù)數(shù)字序列的方法,需要的朋友可以參考下2014-09-09
javascript iframe內(nèi)的函數(shù)調(diào)用實(shí)現(xiàn)方法
用下面的方法可以調(diào)用iframe中的函數(shù),實(shí)現(xiàn)一些比較特殊的效果,不過能跨域的。2009-07-07
如何寫一個(gè)通用的JavaScript效果庫!(2/2)
如何寫一個(gè)通用的JavaScript效果庫!(2/2)...2007-04-04
js將iframe中控件的值傳到主頁面控件中的實(shí)現(xiàn)方法
主要是通過在主頁面定義一個(gè)傳輸數(shù)據(jù)的函數(shù)GetData(data),然后在iframe嵌入頁面中通過parent.GetData(data),這樣即可在GetData實(shí)現(xiàn)將data進(jìn)行處理即可。2013-03-03
JavaScript實(shí)現(xiàn)移動(dòng)端橫豎屏檢測
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)移動(dòng)端橫豎屏檢測,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-07-07

