Vòng lặp và return trong JavaScript
Giả sử chúng ta có một hàm trả về tổng
các số từ 1 đến 5:
function func() {
let sum = 0;
for (let i = 1; i <= 5; i++) {
sum += i;
}
return sum;
}
let res = func();
console.log(res); // sẽ hiển thị 15
Bây giờ giả sử chúng ta đặt return
bên trong vòng lặp, như thế này:
function func() {
let sum = 0;
for (let i = 1; i <= 5; i++) {
sum += i;
return sum;
}
}
let res = func();
console.log(res);
Trong trường hợp này, vòng lặp sẽ chỉ chạy một
lần lặp và sẽ tự động thoát khỏi hàm (và đồng thời
thoát khỏi vòng lặp). Và chỉ sau một lần lặp,
biến sum sẽ chỉ chứa
số 1, chứ không phải toàn bộ tổng cần thiết.
Điều gì sẽ được hiển thị trong console khi thực thi đoạn mã sau:
function func(num) {
let sum = 0;
for (let i = 1; i <= num; i++) {
sum += i;
return sum;
}
}
console.log( func(5) );
Hãy giải thích tại sao. Tác giả của đoạn mã này muốn làm gì? Hãy sửa lỗi của tác giả.