2013-07-02 55 views
1

我無法理解Javascript中「for」循環和「if」語句中括號的用法。我已經看到Javascript中的語法,其中有括號和沒有。我被告知通常應該使用括號。有人能夠清楚地解釋何時應該爲「for」和「if」循環使用括號嗎?函數中的括號Javascript

function range(upto) { 
    var result = []; 
    for (var i = 0; i <= upto; i++) 
    result[i] = i; 
    return result; 
} 
console.log(range(15)); 

這樣做的結果將是

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] 

這是對括號:

function range(upto) { 
    var result = []; 
    for (var i = 0; i <= upto; i++) { 
    result[i] = i; 
    }; 
    return result; 

} 
console.log(range(15)); 
+1

問題不再清楚,因爲他們產生相同的結果。什麼是問題? – Esailija

+0

問題是何時應該爲「for循環」和「if語句」使用括號。它已被回答在下面。 – JaTo

回答

2

可以省略括號當for環適用於一個獨特的聲明。

如果您希望它適用於更多的語句,您必須使用它。更確切地說,for循環總是適用於一個語句,但是the brackets build a block which is a statement

當只有一條語句時,添加括號不能破壞代碼並且通常使其更具可讀性。事實上,大多數編碼器不會在沒有括號的開口for循環中進入下一行。我個人與

for (var i = 0; i <= upto; i++) result[i] = i; 

for (var i = 0; i <= upto; i++) { 
    result[i] = i; 
} 
+0

這兩個片段看起來與我完全相同。 – georg

+0

@ thg435你說得對。但是這個問題被編輯了,我想我讀了一些不同的東西,甚至有一個單元素數組的第二個代碼的輸出... –

+0

是的,我編輯它早些時候,愚蠢的錯誤。對困惑感到抱歉 – JaTo

1

更換

for (var i = 0; i <= upto; i++) 
    result[i] = i; 

不只是下面的語句是受到影響,而用括號一切括號內是影響支架。

要括號添加到循環,它的工作完全一樣,只是增加他們周圍的下一條語句:

function range(upto) { 
    var result = []; 
    for (var i = 0; i <= upto; i++) { 
     result[i] = i; 
    } 
    return result; 
} 
0

支架允許您添加更多的語句轉換成一個塊。 如果我修改位,顯示結果

function range(upto) { 
    var result = []; 
    for (var i = 0; i <= upto; i++) { 
    result[i] = i; 
    result[i] = result[i]*2 
    } 
    return result; 

} 
console.log(range(15)); 

結果將是

[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30] 
然而

,無支架,

function range(upto) { 
     var result = []; 
     for (var i = 0; i <= upto; i++) 
     result[i] = i; 
     result[i] = result[i]*2 

     return result; 

    } 
    console.log(range(15)); 

結果會是這樣

[1,2,3,4,5,6,7,8,9,10,11,12,13,14,30] 

*是菜鳥程序員,我想這可能會失敗,由於未申報的變量