Silmukka ja return JavaScriptissä
Oletetaan, että meillä on funktio, joka palauttaa lukujen summan
1:stä 5:een:
function func() {
let sum = 0;
for (let i = 1; i <= 5; i++) {
sum += i;
}
return sum;
}
let res = func();
console.log(res); // tulostaa 15
Oletetaan nyt, että sijoittamme return
silmukan sisään, näin:
function func() {
let sum = 0;
for (let i = 1; i <= 5; i++) {
sum += i;
return sum;
}
}
let res = func();
console.log(res);
Tässä tapauksessa silmukka pyörähtää vain yhden
iteraation verran ja funktiosta (ja samalla silmukasta) poistutaan automaattisesti.
Ja yhden iteraation aikana muuttujaan sum päätyy
vain luku 1, eikä koko tarvittavaa summaa.
Mitä seuraava koodi tulostaa konsoliin suorituksen jälkeen:
function func(num) {
let sum = 0;
for (let i = 1; i <= num; i++) {
sum += i;
return sum;
}
}
console.log( func(5) );
Selitä miksi. Mitä tämän koodin tekijä yritti tehdä? Korjaa tekijän virhe.