2012-03-27 53 views
1

我進入Firebug的控制檯下面的代碼在Win 7最新,火狐11:JavaScript的一元問題螢火

var age = 26; 

while (age < 37) { 
    console.log("You can join!"); 
    console.log(age); 
    age++; 
} 

它吐出來的就是我尋找,但打印一個額外的「36」在最後。我不明白爲什麼。 以下是我期待做的事情: 1.檢查該人是否年齡小於37歲(不能超過37歲)。 2.如果符合要求,應打印「您可以加入!」 就是這樣。爲什麼最後會多出36個?

我剛剛開始學習JavaScript,並且此代碼段未用於任何事情,我只是將代碼插入FireBug以獲得樂趣。

我是新來的stackoverflow。感謝您的支持。

+0

我不知道爲什麼你會不希望它打印'36' ... – 2012-03-27 02:51:36

+0

參見[這個問題](http://stackoverflow.com/questions/8618270/using-a- blocks-return-value-in-javascript)的一些相關信息。在某些場合發生某種無法回報的價值。基本上你可以忽略它。最後的迭代不會發生兩次。 – 2012-03-27 02:54:15

+0

@PeterOlson:我認爲關鍵詞是*「extra」*。在控制檯中會有兩次'36'。 – 2012-03-27 02:55:09

回答

1

這就是它如何正常表現。默認情況下,Firebug顯示最後一條語句的值。

var age = 9; 
var temp = 10; 

age++; 
age < temp; 

您可以在控制檯中看到false。我想這是因爲螢火蟲使用eval。以下語句也會返回相同的結果。

eval("var age = 9;var temp = 10;age++;age < temp;"); 
+0

Firebug無意中打印了最後一條語句的值?所以這不是我的代碼,使它打印額外的36? – nodebase 2012-03-27 03:19:28

+0

不,這不是你的代碼:)。你的代碼是正確的。 – Diode 2012-03-27 03:20:48