2017-09-16 99 views
-2

我每週都在學javascript。 我有一個難以理解的問題。香草Javascript初學者

function power(exponent) { 
    for(var i = 0; i < exponent; i++) { 
    exponent -= 1; 
    } 
    return exponent; 
} 

document.write(power(3)); 
// result : 1 

當我內部傳回報指數低於環路(結果:2)

function power(exponent) { 
    for(var i = 0; i < exponent; i++) { 
    exponent -= 1; 
    return exponent; 
    } 
} 

document.write(power(3)); 
// result : 2 

爲什麼有兩個情況下,其結果是不等於0。我認爲循環將循環三(指數 - 1),結果將等於0.

請爲我解釋一下嗎?

感謝

+1

因爲您在第一次迭代時返回。 console.log()是調試器的朋友。 – epascarello

回答

2

因爲你已經得到了在循環中return關鍵字功能是一個循環之後返回。一個函數只能返回一次,所以一旦碰到return,它就會返回值並離開函數。如果將return移動到循環外部,則該功能將僅在循環完成後退出。

此外,通過每次減少exponent變量,您將減少循環的迭代次數(在一次迭代後,將其減少到兩次,因此它只會循環兩次,等等)。爲了達到零,您需要將exponent的值複製到循環變量(如n)中,以便它保持不變,並且代碼循環exponent次。

var n = exponent; 

for(var i = 0; i < n; i++) { 
    exponent -= 1; 
} 
return exponent; 
+1

非常感謝。我只是自學,所以我不確定背景知識。我需要學會如何解決這樣的問題。因爲我成爲像你這樣的前端開發者。你可以指出最好的方式? –