国产探花免费观看_亚洲丰满少妇自慰呻吟_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 在循環(代碼塊)已被執行之后執行
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 江城| 方正县| 望奎县| 正镶白旗| 会昌县| 肇州县| 辉南县| 观塘区| 抚远县| 宣威市| 建湖县| 固始县| 凤翔县| 七台河市| 新乡市| 库尔勒市| 衡东县| 呼伦贝尔市| 南澳县| 东乡族自治县| 安阳县| 波密县| 沂水县| 友谊县| 岳阳县| 东平县| 寻乌县| 宁阳县| 汾阳市| 清水河县| 汝阳县| 治多县| 翁源县| 勃利县| 射阳县| 桂东县| 新田县| 阿鲁科尔沁旗| 改则县| 阳新县| 香港|