Döngüler, bir kod bloğunu tekrar tekrar çalıştırmak için kullanılır.
Klasik for
En çok kontrol sağlayan tip:
for (let i = 0; i < 5; i++) {
console.log(i); // 0, 1, 2, 3, 4
}Üç bölümü vardır: başlangıç, koşul, adım.
while
Koşul true olduğu sürece çalışır:
let n = 10;
while (n > 0) {
console.log(n);
n--;
}do...while
Koşul kontrol edilmeden en az 1 kez çalışır:
let answer;
do {
answer = prompt("Devam? (e/h)");
} while (answer !== "h");for...of — değerler için
Diziler, string'ler, Map, Set üzerinde gezer:
const colors = ["kırmızı", "mavi", "yeşil"];
for (const color of colors) {
console.log(color);
}
for (const ch of "abc") {
console.log(ch);
}for...in — anahtarlar için
Bir objenin anahtarları (key) üzerinde gezer:
const user = { name: "Furkan", age: 28, role: "dev" };
for (const key in user) {
console.log(key, "=", user[key]);
}⚠️Uyarı
Diziler için for...in kullanma! Index yerine prototip zincirinden gelen
property'leri de döndürebilir. Diziler için for...of veya forEach kullan.
break ve continue
for (let i = 0; i < 10; i++) {
if (i === 3) continue; // bu turu atla
if (i === 7) break; // tamamen çık
console.log(i); // 0, 1, 2, 4, 5, 6
}Hangi döngüyü ne zaman?
| Senaryo | Tercih |
|---|---|
| Index'e ihtiyaç var | for |
| Diziyi gezmek | for...of veya forEach |
| Obje gezmek | for...in veya Object.entries() |
| Koşula bağlı tekrar | while |
| Veriyi dönüştürmek | map, filter, reduce (sonraki bölümler) |
Performans notu
Modern motorlar tüm döngü tiplerini benzer hızda çalıştırır. Döngü seçimini okunabilirliğe göre yap, performansa değil.