2015-08-28 72 views
0

什麼會是++我VS我在JavaScript混淆功能++

var nums = []; 
for (var i = 0; i < 10; ++i) { 
nums[i] = i+1; 
} 

var nums = []; 
for (var i = 0; i < 10; i++) { 
nums[i] = i+1; 
} 

for環路,i = 0之間的差異,但在第一次迭代,將NUMS [I ] = nums [0]或nums [1],因爲我們正在使用++i?如果使用i++,第一次迭代將會有所不同?

更新:對於這個特殊的for循環也沒關係。不過,我很有興趣看到一個for循環,其中++ii++很重要。

+1

沒有區別。第一次迭代都是nums [0]。 – lhoworko

回答

5

他們將是完全一樣的; ++ii++具有相同的效果i,但的每個表達是不同的;在這種情況下,由於該值被忽略,代碼的行爲相同。

作爲一個例子,其中兩個物質之間切換,這裏是一些真正可怕的代碼:

for (var i=0; i++ < 10;) 
+0

你可以提供一個for循環,其中我++和++的重要嗎? – user3170033

-1

他們是相同的。增量發生在循環體的末尾。

即可以查看環路

var i = 0; 
while (i < 10) { 

... Body of loop 

i++ or ++i; 

} 
0

有兩者之間沒有差別。遞增的值將被忽略,因爲它將在循環結束時發生。

編輯:

這使得在沒有任何區別的循環,如果你寫

for (var i = 0; i < 10; ++i) { 

for (var i = 0; i < 10; i++) { 

您將獲得在兩種情況下相同的結果。大多數人使用i ++或更好的理由說爲什麼i ++在for循環中比++ i更受歡迎可能是因爲人們習慣於使用i ++,習慣於在C中使用i ++。同時要注意的是,在C++你可以編寫自己的++運算符版本。

+1

這可能是我想的評論... – Rayon

0

在for循環中,沒有任何區別。 ++ i和i ++之間的區別是表達式返回的值,但是表達式會在每次循環完成後計算並忽略該值。 「返回」前

2

++i增量,增量i++

var i = 0; 
i++; //=> 0 
i; //=> 1 

var j = 0; 
++j; //=> 1 
j; //=> 1 

爲了您for循環的目的,它不會有所作爲。