簡體   English   中英

混淆while循環在javascript中

[英]Confused about while loop in javascript

我可能在這里有點厚,但請回答我。 請考慮以下代碼:

a=1;
while(a<=6) {
   console.log(a);
   a++;
}

如果我運行這個,我在控制台中從1到6獲得值,然后是另一個6。

現在看看這個:

a=1;
while(a<=6) {
    console.log(a);
    ++a;
}

現在運行它將獲得從1到7的值。

為什么會這樣? 我的理解是語句塊​​只有在表達式求值為true時才會運行。 在我的第二個例子中,這怎么可能呢? 為什么6在第一次出現兩次? 對我來說很困惑。

如果你能簡單地解釋(我還在學習),這將是偉大的。

控制台為您打印評估的最后一個語句的值。 在第二種情況下,您預先遞增,因此它的值是7而不是第一個中的6。

改變你的console.log()調用打印更多的東西,這將是顯而易見的:

console.log("a is: " + a);

您不會在最后一行看到該前綴。

在這兩種情況下,您都會看到一個額外的數字,因為控制台正在輸出循環中最后一個語句的結果。

當該代碼不直接在控制台中執行時,您將看不到什么似乎是額外的數字。

看看他們的反應小提琴 兩者都返回1到6。

a ++:返回前一個增量的值。

++這樣的 :它增量后返回值。

循環執行直到'a'<= 6的值。

當您在控制台上運行任何代碼時,它會評估變量值並打印其值,這也就是您在輸出中再獲得67的原因。

不用擔心,當您運行此代碼時,將僅獲得1-6值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM