国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

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

2019-11-20 15:07:12
字體:
來源:轉載
供稿:網友
引發這個問題思考的是一段js程序的運行結果:
復制代碼 代碼如下:

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();

這段程序的運行結果是Result = 21;

從這段程序中我們可以看出,i在a函數返回的時候值是20這是沒有問題的。
而在b函數返回的時候,i的值是20還是21就值得討論了。
問題的本質即:先進行了判斷i<3,還是先進行了i++,再判斷是否i<3.

根據執行的結果可以看出,是先執行了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();//這個函數返回是i=20
//當i=20 經過 i++后 i=21 那么就不符合i<3的條件,直接退出。所以return i=21 這很正常!
}
return i;
}
var Result = b();

在此我們補完for循環的執行順序:
以下面程序為例
復制代碼 代碼如下:

for(int i=0;i<10;i++)
{
}

首先執行i=0;i<10; 然后執行第一輪循環體
然后執行:i++,i<10; 然后執行第二輪循環體
直到最后一次 i++后 i >=10,此時循環結束。



語句 1 在循環(代碼塊)開始前執行

語句 2 定義運行循環(代碼塊)的條件

語句 3 在循環(代碼塊)已被執行之后執行
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 和林格尔县| 开封县| 金堂县| 九龙坡区| 伊宁县| 郯城县| 沁阳市| 宁陕县| 南皮县| 乌什县| 尼玛县| 九台市| 铜川市| 且末县| 阳江市| 潜山县| 星子县| 湖州市| 澜沧| 紫阳县| 龙岩市| 古浪县| 轮台县| 德格县| 武平县| 丹巴县| 金川县| 六安市| 永新县| 保德县| 原阳县| 专栏| 扶沟县| 福建省| 将乐县| 青铜峡市| 岳池县| 江安县| 沅江市| 陆丰市| 友谊县|