Junior
for...in ve for...of döngüleri arasındaki fark nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
for...in döngüsü, nesnenin dizine alınabilir özellikleri (anahtarları) üzerinde yineleme yapar, prototip zincirindeki özellikler dahil.
for...of döngüsü ise, yineleyebilir nesnelerin (Array, Map, Set, String, arguments vb.) değerleri üzerinde yineleme yapar. Prototip özellikleri üzerinde yineleme yapmaz.
for...in |
for...of |
|
|---|---|---|
| Yineleme yapar | Nesne anahtarları (özellikleri) | Yineleyebilir nesnelerin değerleri |
| Kullanılır | Nesneler | Diziler, dizgeler, Map, Set ve diğer yineleyebilir nesneler |
| Prototip | Prototip özellikleri üzerinde yineleme yapar | Prototip özellikleri üzerinde yineleme yapmaz |
| Yineleme sırası | Garanti edilmez, özellikle sayısal olmayan anahtarlar için | Dizilerde (indeks sırasıyla) garanti edilir |
for...in örneği:
const obj = { a: 1, b: 2 };
for (const key in obj) {
console.log(key, obj[key]); // Çıktı: "a 1", "b 2"
}
for...of örneği:
const arr = [1, 2, 3];
for (const value of arr) {
console.log(value); // Çıktı: 1, 2, 3
}
Genel olarak, diziler ve benzeri yapılar üzerinde gezinmek için for...of kullanmak tercih edilirken, nesne özellikleri üzerinde gezinmek için for...in kullanılır (sıklıkla hasOwnProperty ile birlikte, prototip özelliklerini hariç tutmak için).