2013-04-06 21 views
1

我明白我猜的循環,但我驚訝地發現console.log中的firebug迭代一次。我期望10x迭代(0-9)。爲什麼10?爲什麼在console.log javascript中迭代一次?

$i = 0; 

while ($i < 10) { 
    console.log($i);//the last time here should be $i=9, not $i=10 
    ++$i; 
} 

// in console log i have(0...10) 

while ($i < 10) { 
    console.log($i); 
    $i++; 
} 
// in console.log i have doubled 9(0...9,9) Why 9 doubled??? 

謝謝你的建議

+1

你爲什麼要命名變量'$ i'?這是PHP的主題。 – 2013-04-06 16:46:33

+1

[這對我來說沒有加倍9 ...](http://jsfiddle.net/dU4Ey/) – 0x499602D2 2013-04-06 16:47:39

+2

將你的'console.log'改爲'console.log(「$ i是」+ $ i); '看看它是什麼樣子。 – Pointy 2013-04-06 16:48:43

回答

3

我認爲你看到的是剛剛過去的說法,這是$i++++$i的結果。如果您直接在控制檯中鍵入此語句,即使您沒有明確輸出它,也會看到一個數字。

例如,如果我直接在Firefox的控制檯上運行的代碼,我居然看到

10 
0 
1 
... 
9 

10++$i最後執行的結果和其他人是console.log語句,只執行代碼終止後(看起來)。

如果使用

console.log('Iteration: ' + $i); 

那麼你會看到其中的差別更清楚。


爲什麼你看到兩個9 S,因爲$i++(其中$i = 9)結果這也是原因是9

+0

好吧,我想我明白了:)謝謝 – 2013-04-06 17:15:48

2

我覺得你不希望你看到的「10」和「9」是控制檯中返回的內容。

相關問題