{"id":39298,"date":"2026-02-18T13:41:03","date_gmt":"2026-02-18T10:41:03","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=39298"},"modified":"2026-02-18T13:41:03","modified_gmt":"2026-02-18T10:41:03","slug":"javascript-for-donguleri-kapsamli-bir-rehber","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/javascript-for-donguleri-kapsamli-bir-rehber\/","title":{"rendered":"JavaScript For D\u00f6ng\u00fcleri: Kapsaml\u0131 Bir Rehber"},"content":{"rendered":"<p><body><\/p>\n<h2>JavaScript For D\u00f6ng\u00fcleri: Kapsaml\u0131 Bir Rehber<\/h2>\n<p>JavaScript&#8217;te d\u00f6ng\u00fcler, belirli bir kod blo\u011funu tekrar tekrar \u00e7al\u0131\u015ft\u0131rman\u0131za olanak tan\u0131yan temel programlama yap\u0131lar\u0131d\u0131r. Bu rehberde, JavaScript&#8217;in en yayg\u0131n ve g\u00fc\u00e7l\u00fc d\u00f6ng\u00fc t\u00fcrlerinden biri olan <code>for<\/code> d\u00f6ng\u00fcs\u00fcne odaklanaca\u011f\u0131z. Farkl\u0131 <code>for<\/code> varyantlar\u0131n\u0131, kullan\u0131m senaryolar\u0131n\u0131, pratik \u00f6rnekleri ve en iyi uygulamalar\u0131 derinlemesine inceleyece\u011fiz. \u0130ster bir dizi \u00fczerinde yineleme yap\u0131n, ister bir nesnenin \u00f6zelliklerini dola\u015f\u0131n, <code>for<\/code> d\u00f6ng\u00fcleri kodunuzu daha dinamik ve verimli hale getirmenin anahtar\u0131d\u0131r.<\/p>\n<h3>Temel <code>for<\/code> D\u00f6ng\u00fcs\u00fc: Yap\u0131s\u0131 ve Kullan\u0131m\u0131<\/h3>\n<p>Geleneksel <code>for<\/code> d\u00f6ng\u00fcs\u00fc, belirli bir ko\u015ful do\u011fru oldu\u011fu s\u00fcrece bir kod blo\u011funu tekrar tekrar y\u00fcr\u00fctmek i\u00e7in kullan\u0131l\u0131r. Genellikle bir dizideki \u00f6\u011feleri i\u015flemek veya belirli bir say\u0131 aral\u0131\u011f\u0131nda yineleme yapmak i\u00e7in idealdir. Yap\u0131s\u0131 \u00fc\u00e7 ana ifade i\u00e7erir:<\/p>\n<ol>\n<li><strong>Ba\u015flang\u0131\u00e7 \u0130fadesi (Initialization):<\/strong> D\u00f6ng\u00fc ba\u015flamadan \u00f6nce bir kez y\u00fcr\u00fct\u00fcl\u00fcr. Genellikle bir sayac\u0131n tan\u0131mland\u0131\u011f\u0131 ve ba\u015flang\u0131\u00e7 de\u011ferinin atand\u0131\u011f\u0131 yerdir (\u00f6rne\u011fin, <code>let i = 0;<\/code>).<\/li>\n<li><strong>Ko\u015ful \u0130fadesi (Condition):<\/strong> Her d\u00f6ng\u00fc iterasyonundan \u00f6nce de\u011ferlendirilir. E\u011fer ko\u015ful <code>true<\/code> ise, d\u00f6ng\u00fc blo\u011fu y\u00fcr\u00fct\u00fcl\u00fcr; <code>false<\/code> ise, d\u00f6ng\u00fc sona erer.<\/li>\n<li><strong>Art\u0131r\u0131m\/Azalt\u0131m \u0130fadesi (Increment\/Decrement):<\/strong> Her d\u00f6ng\u00fc iterasyonundan sonra y\u00fcr\u00fct\u00fcl\u00fcr. Genellikle sayac\u0131 g\u00fcnceller (\u00f6rne\u011fin, <code>i++<\/code> veya <code>i--<\/code>).<\/li>\n<\/ol>\n<h4>S\u00f6zdizimi:<\/h4>\n<pre><code class=\"language-javascript\">\nfor (ba\u015flang\u0131\u00e7_ifadesi; ko\u015ful_ifadesi; art\u0131r\u0131m_ifadesi) {\n  \/\/ Ko\u015ful do\u011fru oldu\u011fu s\u00fcrece \u00e7al\u0131\u015facak kod blo\u011fu\n}\n  <\/code><\/pre>\n<h4>\u00d6rnek: 0&#8217;dan 4&#8217;e Kadar Say\u0131lar\u0131 Yazd\u0131rma<\/h4>\n<pre><code class=\"language-javascript\">\nfor (let i = 0; i < 5; i++) {\n  console.log(\"Say\u0131: \" + i);\n}\n\/*\n\u00c7\u0131kt\u0131:\nSay\u0131: 0\nSay\u0131: 1\nSay\u0131: 2\nSay\u0131: 3\nSay\u0131: 4\n*\/\n  <\/code><\/pre>\n<p>Bu \u00f6rnekte:<\/p>\n<ul>\n<li><code>let i = 0;<\/code>: D\u00f6ng\u00fc sayac\u0131n\u0131 <code>0<\/code> olarak ba\u015flat\u0131r.<\/li>\n<li><code>i < 5;<\/code>: D\u00f6ng\u00fcn\u00fcn <code>i<\/code>, <code>5<\/code>'ten k\u00fc\u00e7\u00fck oldu\u011fu s\u00fcrece devam etmesini sa\u011flar.<\/li>\n<li><code>i++<\/code>: Her iterasyondan sonra <code>i<\/code> de\u011ferini <code>1<\/code> art\u0131r\u0131r.<\/li>\n<\/ul>\n<h4>\u00d6rnek: Bir Dizideki Elemanlar\u0131 D\u00f6ng\u00fcyle \u0130\u015fleme<\/h4>\n<pre><code class=\"language-javascript\">\nconst meyveler = [\"Elma\", \"Armut\", \"Muz\", \"\u00c7ilek\"];\n\nfor (let i = 0; i < meyveler.length; i++) {\n  console.log(\"Meyve #\" + (i + 1) + \": \" + meyveler[i]);\n}\n\/*\n\u00c7\u0131kt\u0131:\nMeyve #1: Elma\nMeyve #2: Armut\nMeyve #3: Muz\nMeyve #4: \u00c7ilek\n*\/\n  <\/code><\/pre>\n<p>Bu, geleneksel <code>for<\/code> d\u00f6ng\u00fcs\u00fcn\u00fcn dizilerle en yayg\u0131n kullan\u0131m \u015feklidir. <code>meyveler.length<\/code> \u00f6zelli\u011fi sayesinde d\u00f6ng\u00fcn\u00fcn dizinin t\u00fcm elemanlar\u0131 \u00fczerinde gezindi\u011finden emin oluruz.<\/p>\n<h3><code>for...in<\/code> D\u00f6ng\u00fcs\u00fc: Nesne \u00d6zelliklerini Yineleme<\/h3>\n<p><code>for...in<\/code> d\u00f6ng\u00fcs\u00fc, bir nesnenin numaraland\u0131r\u0131labilir (enumerable) string anahtarl\u0131 \u00f6zelliklerini yinelemek i\u00e7in kullan\u0131l\u0131r. Genellikle nesnelerin anahtarlar\u0131n\u0131 (properties) veya dizilerin indekslerini (ancak diziler i\u00e7in pek \u00f6nerilmez) dola\u015fmak i\u00e7in tercih edilir.<\/p>\n<h4>S\u00f6zdizimi:<\/h4>\n<pre><code class=\"language-javascript\">\nfor (de\u011fi\u015fken in nesne) {\n  \/\/ Nesnenin her numaraland\u0131r\u0131labilir \u00f6zelli\u011fi i\u00e7in \u00e7al\u0131\u015facak kod\n}\n  <\/code><\/pre>\n<p>Buradaki <code>de\u011fi\u015fken<\/code>, her iterasyonda nesnenin bir \u00f6zelli\u011finin anahtar\u0131n\u0131 (string olarak) al\u0131r.<\/p>\n<h4>\u00d6rnek: Bir Nesnenin \u00d6zelliklerini Yazd\u0131rma<\/h4>\n<pre><code class=\"language-javascript\">\nconst kullanici = {\n  ad: \"Ali\",\n  soyad: \"Y\u0131lmaz\",\n  yas: 30,\n  meslek: \"M\u00fchendis\"\n};\n\nfor (let anahtar in kullanici) {\n  console.log(anahtar + \": \" + kullanici[anahtar]);\n}\n\/*\n\u00c7\u0131kt\u0131:\nad: Ali\nsoyad: Y\u0131lmaz\nyas: 30\nmeslek: M\u00fchendis\n*\/\n  <\/code><\/pre>\n<p><strong>\u00d6nemli Notlar ve Dikkat Edilmesi Gerekenler:<\/strong><\/p>\n<ul>\n<li><code>for...in<\/code> d\u00f6ng\u00fcs\u00fc, nesnenin kendi \u00f6zelliklerinin yan\u0131 s\u0131ra prototip zincirindeki numaraland\u0131r\u0131labilir \u00f6zellikleri de yineleyebilir. Bu, beklenmedik sonu\u00e7lara yol a\u00e7abilir. Bu nedenle, genellikle <code>Object.prototype.hasOwnProperty.call(nesne, anahtar)<\/code> kontrol\u00fc ile sadece nesnenin kendi \u00f6zelliklerini filtrelemek iyi bir pratiktir.<\/li>\n<li>Dizilerle kullan\u0131ld\u0131\u011f\u0131nda, <code>for...in<\/code> d\u00f6ng\u00fcs\u00fc dizinin elemanlar\u0131n\u0131 de\u011fil, indekslerini string olarak d\u00f6nd\u00fcr\u00fcr. Ayr\u0131ca, indekslerin s\u0131ras\u0131 garanti edilmez (ancak \u00e7o\u011fu modern taray\u0131c\u0131da s\u0131ral\u0131 \u00e7al\u0131\u015f\u0131r). Diziler i\u00e7in <code>for<\/code> veya <code>for...of<\/code> kullanmak \u00e7ok daha g\u00fcvenli ve etkilidir.<\/li>\n<li>E\u011fer bir nesnenin sadece kendi \u00f6zelliklerini almak istiyorsan\u0131z, <code>Object.keys()<\/code>, <code>Object.values()<\/code> veya <code>Object.entries()<\/code> gibi y\u00f6ntemler daha modern ve kontrol edilebilir alternatiflerdir.<\/li>\n<\/ul>\n<h3><code>for...of<\/code> D\u00f6ng\u00fcs\u00fc: Yineleyebilir Nesneler \u00dczerinde Yineleme<\/h3>\n<p>ES6 ile tan\u0131t\u0131lan <code>for...of<\/code> d\u00f6ng\u00fcs\u00fc, <code>for...in<\/code> d\u00f6ng\u00fcs\u00fcn\u00fcn aksine, do\u011frudan yinelenebilir (iterable) nesnelerin (diziler, stringler, Map'ler, Set'ler, NodeList'ler vb.) <strong>de\u011ferleri<\/strong> \u00fczerinde yineleme yapmak i\u00e7in tasarlanm\u0131\u015ft\u0131r. Bu, \u00f6zellikle dizilerle \u00e7al\u0131\u015f\u0131rken kodu daha okunabilir ve anla\u015f\u0131l\u0131r hale getirir.<\/p>\n<h4>S\u00f6zdizimi:<\/h4>\n<pre><code class=\"language-javascript\">\nfor (de\u011fi\u015fken of yinelenebilirNesne) {\n  \/\/ Yineleyebilir nesnenin her de\u011feri i\u00e7in \u00e7al\u0131\u015facak kod\n}\n  <\/code><\/pre>\n<p>Buradaki <code>de\u011fi\u015fken<\/code>, her iterasyonda yinelenebilir nesnenin bir sonraki de\u011ferini al\u0131r.<\/p>\n<h4>\u00d6rnek: Bir Dizideki Elemanlar\u0131 Do\u011frudan Kullanma<\/h4>\n<pre><code class=\"language-javascript\">\nconst renkler = [\"K\u0131rm\u0131z\u0131\", \"Ye\u015fil\", \"Mavi\"];\n\nfor (let renk of renkler) {\n  console.log(\"Renk: \" + renk);\n}\n\/*\n\u00c7\u0131kt\u0131:\nRenk: K\u0131rm\u0131z\u0131\nRenk: Ye\u015fil\nRenk: Mavi\n*\/\n  <\/code><\/pre>\n<p>Bu \u00f6rnekte, <code>renk<\/code> de\u011fi\u015fkeni do\u011frudan dizinin eleman de\u011ferlerini al\u0131r, indeksle u\u011fra\u015fmaya gerek kalmaz.<\/p>\n<h4>\u00d6rnek: Bir String \u00dczerinde Yineleme<\/h4>\n<pre><code class=\"language-javascript\">\nconst kelime = \"Merhaba\";\n\nfor (let karakter of kelime) {\n  console.log(\"Karakter: \" + karakter);\n}\n\/*\n\u00c7\u0131kt\u0131:\nKarakter: M\nKarakter: e\nKarakter: r\nKarakter: h\nKarakter: a\nKarakter: b\nKarakter: a\n*\/\n  <\/code><\/pre>\n<p><code>for...of<\/code> d\u00f6ng\u00fcs\u00fc, stringleri karakter dizileri olarak ele al\u0131r ve her bir karakter \u00fczerinde kolayca yineleme yapman\u0131z\u0131 sa\u011flar.<\/p>\n<p><strong><code>for...of<\/code> ve Di\u011fer D\u00f6ng\u00fcler Aras\u0131ndaki Farklar:<\/strong><\/p>\n<ul>\n<li><strong><code>for...of<\/code> vs. Geleneksel <code>for<\/code>:<\/strong> <code>for...of<\/code> daha \u00f6zl\u00fc ve okunabilirdir, \u00f6zellikle sadece eleman de\u011ferlerine ihtiyac\u0131n\u0131z varsa. Geleneksel <code>for<\/code> ise indeks kontrol\u00fcne ihtiya\u00e7 duydu\u011funuzda (\u00f6rne\u011fin, belirli bir indeksten ba\u015flatma veya tersine yineleme) daha esnektir.<\/li>\n<li><strong><code>for...of<\/code> vs. <code>for...in<\/code>:<\/strong> <code>for...of<\/code> de\u011ferler \u00fczerinde, <code>for...in<\/code> ise anahtarlar (indeksler) \u00fczerinde yineleme yapar. <code>for...of<\/code> sadece yinelenebilir nesnelerle \u00e7al\u0131\u015f\u0131rken, <code>for...in<\/code> nesnelerin numaraland\u0131r\u0131labilir \u00f6zellikleriyle \u00e7al\u0131\u015f\u0131r. Diziler i\u00e7in her zaman <code>for...of<\/code> tercih edilmelidir.<\/li>\n<\/ul>\n<h3>Geli\u015fmi\u015f Konular ve En \u0130yi Uygulamalar<\/h3>\n<h4><code>break<\/code> ve <code>continue<\/code> Anahtar Kelimeleri<\/h4>\n<p>D\u00f6ng\u00fclerin ak\u0131\u015f\u0131n\u0131 kontrol etmek i\u00e7in <code>break<\/code> ve <code>continue<\/code> anahtar kelimelerini kullanabilirsiniz:<\/p>\n<ul>\n<li><strong><code>break<\/code>:<\/strong> \u0130\u00e7inde bulundu\u011fu d\u00f6ng\u00fcy\u00fc an\u0131nda sonland\u0131r\u0131r ve d\u00f6ng\u00fcden sonraki ilk koda atlar.<\/li>\n<li><strong><code>continue<\/code>:<\/strong> Mevcut iterasyonu atlar ve d\u00f6ng\u00fcn\u00fcn bir sonraki iterasyonuna ge\u00e7er.<\/li>\n<\/ul>\n<h4>\u00d6rnek: <code>break<\/code> Kullan\u0131m\u0131<\/h4>\n<pre><code class=\"language-javascript\">\nfor (let i = 0; i < 10; i++) {\n  if (i === 5) {\n    console.log(\"5&#039;e ula\u015f\u0131ld\u0131, d\u00f6ng\u00fc sonland\u0131r\u0131l\u0131yor.\");\n    break; \/\/ D\u00f6ng\u00fcy\u00fc burada bitirir\n  }\n  console.log(\"Say\u0131: \" + i);\n}\n\/*\n\u00c7\u0131kt\u0131:\nSay\u0131: 0\nSay\u0131: 1\nSay\u0131: 2\nSay\u0131: 3\nSay\u0131: 4\n5&#039;e ula\u015f\u0131ld\u0131, d\u00f6ng\u00fc sonland\u0131r\u0131l\u0131yor.\n*\/\n  <\/code><\/pre>\n<h4>\u00d6rnek: <code>continue<\/code> Kullan\u0131m\u0131<\/h4>\n<pre><code class=\"language-javascript\">\nfor (let i = 0; i < 5; i++) {\n  if (i === 2) {\n    console.log(\"2 atlan\u0131yor.\");\n    continue; \/\/ Bu iterasyonu atlar, 2 yazd\u0131r\u0131lmaz\n  }\n  console.log(\"Say\u0131: \" + i);\n}\n\/*\n\u00c7\u0131kt\u0131:\nSay\u0131: 0\nSay\u0131: 1\n2 atlan\u0131yor.\nSay\u0131: 3\nSay\u0131: 4\n*\/\n  <\/code><\/pre>\n<h4>Performans \u0130pu\u00e7lar\u0131<\/h4>\n<p>B\u00fcy\u00fck veri k\u00fcmeleriyle \u00e7al\u0131\u015f\u0131rken d\u00f6ng\u00fc performans\u0131n\u0131 optimize etmek \u00f6nemlidir:<\/p>\n<ul>\n<li><strong>Dizi Uzunlu\u011funu \u00d6nbelle\u011fe Alma (Geleneksel <code>for<\/code> i\u00e7in):<\/strong> Geleneksel <code>for<\/code> d\u00f6ng\u00fclerinde, her iterasyonda dizi uzunlu\u011funu tekrar tekrar hesaplamaktan ka\u00e7\u0131nmak i\u00e7in uzunlu\u011fu d\u00f6ng\u00fc ba\u015flamadan \u00f6nce bir de\u011fi\u015fkene atamak performans\u0131 art\u0131rabilir.\n<pre><code class=\"language-javascript\">\nconst arr = new Array(100000).fill(0);\n\/\/ K\u00f6t\u00fc\n\/\/ for (let i = 0; i < arr.length; i++) { \/<em> ... <\/em>\/ }\n\n\/\/ \u0130yi\nfor (let i = 0, len = arr.length; i < len; i++) { \/<em> ... <\/em>\/ }\n      <\/code><\/pre>\n<\/li>\n<li><strong>D\u00f6ng\u00fc \u0130\u00e7inde Gereksiz \u0130\u015flemlerden Ka\u00e7\u0131nma:<\/strong> D\u00f6ng\u00fc i\u00e7inde pahal\u0131 hesaplamalar, DOM manip\u00fclasyonlar\u0131 veya gereksiz fonksiyon \u00e7a\u011fr\u0131lar\u0131 yapmaktan ka\u00e7\u0131n\u0131n. M\u00fcmk\u00fcnse bu i\u015flemleri d\u00f6ng\u00fc d\u0131\u015f\u0131na ta\u015f\u0131y\u0131n.<\/li>\n<li><strong>Do\u011fru D\u00f6ng\u00fc T\u00fcr\u00fcn\u00fc Se\u00e7me:<\/strong> Sadece eleman de\u011ferlerine ihtiyac\u0131n\u0131z varsa ve indeks \u00f6nemli de\u011filse, diziler i\u00e7in <code>for...of<\/code> kullanmak genellikle daha okunabilir ve bazen daha performansl\u0131 olabilir. Nesne \u00f6zellikleri i\u00e7in <code>Object.keys()<\/code> ile geleneksel <code>for<\/code> veya <code>forEach<\/code> kombinasyonu daha g\u00fcvenlidir.<\/li>\n<\/ul>\n<h4>Sonsuz D\u00f6ng\u00fcler ve \u00d6nlenmesi<\/h4>\n<p>Sonsuz d\u00f6ng\u00fc, d\u00f6ng\u00fc ko\u015fulunun hi\u00e7bir zaman <code>false<\/code> olmamas\u0131 durumunda ortaya \u00e7\u0131kar ve program\u0131n\u0131z\u0131n kilitlenmesine neden olabilir. Ortak nedenler \u015funlard\u0131r:<\/p>\n<ul>\n<li>Art\u0131r\u0131m\/azalt\u0131m ifadesinin unutulmas\u0131 (<code>for (let i = 0; i < 5; \/<em> i++ unutuldu <\/em>\/)<\/code>).<\/li>\n<li>Ko\u015fulun her zaman <code>true<\/code> kalacak \u015fekilde yanl\u0131\u015f yaz\u0131lmas\u0131 (<code>for (let i = 0; i >= 0; i++)<\/code>).<\/li>\n<\/ul>\n<p>Sonsuz d\u00f6ng\u00fcleri \u00f6nlemek i\u00e7in ko\u015fulun ve art\u0131r\u0131m\/azalt\u0131m mekanizmas\u0131n\u0131n do\u011fru \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olun. Geli\u015ftirme s\u0131ras\u0131nda taray\u0131c\u0131 konsolunuzda veya Node.js ortam\u0131nda bir d\u00f6ng\u00fcn\u00fcn beklendi\u011fi gibi sonland\u0131\u011f\u0131n\u0131 test edin.<\/p>\n<h3>Sonu\u00e7 ve S\u0131k\u00e7a Sorulan Sorular (SSS)<\/h3>\n<p>JavaScript'teki <code>for<\/code> d\u00f6ng\u00fcleri, programlama d\u00fcnyas\u0131n\u0131n vazge\u00e7ilmez ara\u00e7lar\u0131d\u0131r. Geleneksel <code>for<\/code> d\u00f6ng\u00fcs\u00fc, indeks tabanl\u0131 yinelemeler ve hassas kontrol i\u00e7in g\u00fc\u00e7l\u00fc bir se\u00e7enektir. <code>for...in<\/code> nesne \u00f6zelliklerini ke\u015ffetmek i\u00e7in kullan\u0131l\u0131rken, prototip zinciri ve s\u0131ra garantisi olmamas\u0131 gibi dezavantajlar\u0131 nedeniyle dikkatli kullan\u0131lmal\u0131d\u0131r. Modern JavaScript'in sundu\u011fu <code>for...of<\/code> d\u00f6ng\u00fcs\u00fc ise yinelenebilir nesnelerin de\u011ferleri \u00fczerinde zarif ve okunabilir bir \u015fekilde yineleme yapmak i\u00e7in idealdir. Do\u011fru d\u00f6ng\u00fc t\u00fcr\u00fcn\u00fc se\u00e7mek, kodunuzun performans\u0131n\u0131 ve okunabilirli\u011fini b\u00fcy\u00fck \u00f6l\u00e7\u00fcde etkileyecektir. <code>break<\/code> ve <code>continue<\/code> gibi kontrol mekanizmalar\u0131yla d\u00f6ng\u00fc ak\u0131\u015f\u0131n\u0131 daha da \u00f6zelle\u015ftirebilirsiniz.<\/p>\n<h4>S\u0131k\u00e7a Sorulan Sorular (SSS)<\/h4>\n<dl>\n<dt><code>for<\/code> ile <code>forEach<\/code> aras\u0131ndaki fark nedir?<\/dt>\n<dd>\n      <code>for<\/code> geleneksel bir d\u00f6ng\u00fc yap\u0131s\u0131d\u0131r ve <code>break<\/code>\/<code>continue<\/code> gibi kontrol ak\u0131\u015f ifadeleriyle kullan\u0131labilir. <code>forEach<\/code> ise Array prototipinde bulunan bir dizi metodudur. Bir callback fonksiyonu al\u0131r ve her dizi eleman\u0131 i\u00e7in bu fonksiyonu \u00e7al\u0131\u015ft\u0131r\u0131r. <code>forEach<\/code> i\u00e7inde <code>break<\/code> veya <code>continue<\/code> kullanamazs\u0131n\u0131z; d\u00f6ng\u00fcy\u00fc erken sonland\u0131rmak i\u00e7in <code>for<\/code>, <code>for...of<\/code> veya <code>some<\/code>\/<code>every<\/code> gibi metotlar tercih edilmelidir.\n    <\/dd>\n<dt>Hangi <code>for<\/code> d\u00f6ng\u00fcs\u00fcn\u00fc ne zaman kullanmal\u0131y\u0131m?<\/dt>\n<dd>\n<ul>\n<li><strong>Geleneksel <code>for<\/code>:<\/strong> \u0130ndeks \u00fczerinde tam kontrol gerekti\u011finde (\u00f6rne\u011fin, belirli bir indeksten ba\u015flatma, tersine yineleme, birden fazla dizi \u00fczerinde ayn\u0131 anda yineleme).<\/li>\n<li><strong><code>for...in<\/code>:<\/strong> Bir nesnenin numaraland\u0131r\u0131labilir \u00f6zellik anahtarlar\u0131n\u0131 yinelemek i\u00e7in. Ancak, <code>Object.keys()<\/code>, <code>Object.values()<\/code>, <code>Object.entries()<\/code> gibi daha modern ve g\u00fcvenli alternatifler genellikle tercih edilir.<\/li>\n<li><strong><code>for...of<\/code>:<\/strong> Diziler, stringler, Map'ler, Set'ler gibi yinelenebilir nesnelerin do\u011frudan de\u011ferleri \u00fczerinde yineleme yapmak i\u00e7in. \u0130ndekse ihtiyac\u0131n\u0131z yoksa en modern ve okunabilir se\u00e7enektir.<\/li>\n<\/ul>\n<\/dd>\n<dt>Sonsuz d\u00f6ng\u00fcy\u00fc nas\u0131l durdururum?<\/dt>\n<dd>\n      Taray\u0131c\u0131da \u00e7al\u0131\u015f\u0131yorsan\u0131z, genellikle taray\u0131c\u0131 sekmesini kapatman\u0131z gerekir. Node.js veya di\u011fer terminal ortamlar\u0131nda, genellikle <code>Ctrl + C<\/code> tu\u015f kombinasyonu ile program\u0131 durdurabilirsiniz. Kodunuzda sonsuz d\u00f6ng\u00fcye neden olan ko\u015fulu veya art\u0131r\u0131m\/azalt\u0131m ifadesini d\u00fczeltmeniz hayati \u00f6nem ta\u015f\u0131r.\n    <\/dd>\n<dt>Bir d\u00f6ng\u00fcden birden fazla \u00f6\u011feyi nas\u0131l atlar\u0131m?<\/dt>\n<dd>\n      <code>continue<\/code> anahtar kelimesiyle mevcut iterasyonu atlayabilirsiniz. E\u011fer birden fazla \u00f6\u011feyi atlamak istiyorsan\u0131z, <code>i<\/code> sayac\u0131n\u0131 manuel olarak art\u0131rarak bunu yapabilirsiniz. \u00d6rne\u011fin, <code>i += 2<\/code> ile birer atlayarak ilerleyebilirsiniz. Ancak bu, genellikle geleneksel <code>for<\/code> d\u00f6ng\u00fcs\u00fcyle daha kolay y\u00f6netilir.\n    <\/dd>\n<\/dl>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"JavaScript For D\u00f6ng\u00fcleri: Kapsaml\u0131 Bir Rehber\n  JavaScript&#8217;te d\u00f6ng\u00fcler, belirli bir kod blo\u011funu tekrar tekrar \u00e7al\u0131\u015ft\u0131rman\u0131za olanak ta","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[129],"tags":[],"class_list":{"0":"post-39298","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-javascript","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>JavaScript For D\u00f6ng\u00fcleri: Kapsaml\u0131 Bir Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/javascript-for-donguleri-kapsamli-bir-rehber\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"JavaScript For D\u00f6ng\u00fcleri: Kapsaml\u0131 Bir Rehber\" \/>\n<meta property=\"og:description\" content=\"JavaScript For D\u00f6ng\u00fcleri: Kapsaml\u0131 Bir Rehber  JavaScript&#039;te d\u00f6ng\u00fcler, belirli bir kod blo\u011funu tekrar tekrar \u00e7al\u0131\u015ft\u0131rman\u0131za olanak ta\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/javascript-for-donguleri-kapsamli-bir-rehber\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-18T10:41:03+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/javascript-for-donguleri-kapsamli-bir-rehber\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/javascript-for-donguleri-kapsamli-bir-rehber\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"JavaScript For D\u00f6ng\u00fcleri: Kapsaml\u0131 Bir Rehber\",\"datePublished\":\"2026-02-18T10:41:03+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/javascript-for-donguleri-kapsamli-bir-rehber\/\"},\"wordCount\":1388,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Javascript\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/javascript-for-donguleri-kapsamli-bir-rehber\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/javascript-for-donguleri-kapsamli-bir-rehber\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/javascript-for-donguleri-kapsamli-bir-rehber\/\",\"name\":\"JavaScript For D\u00f6ng\u00fcleri: Kapsaml\u0131 Bir Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-02-18T10:41:03+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/javascript-for-donguleri-kapsamli-bir-rehber\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/javascript-for-donguleri-kapsamli-bir-rehber\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/javascript-for-donguleri-kapsamli-bir-rehber\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"JavaScript For D\u00f6ng\u00fcleri: Kapsaml\u0131 Bir Rehber\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"JavaScript For D\u00f6ng\u00fcleri: Kapsaml\u0131 Bir Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/javascript-for-donguleri-kapsamli-bir-rehber\/","og_locale":"tr_TR","og_type":"article","og_title":"JavaScript For D\u00f6ng\u00fcleri: Kapsaml\u0131 Bir Rehber","og_description":"JavaScript For D\u00f6ng\u00fcleri: Kapsaml\u0131 Bir Rehber  JavaScript'te d\u00f6ng\u00fcler, belirli bir kod blo\u011funu tekrar tekrar \u00e7al\u0131\u015ft\u0131rman\u0131za olanak ta","og_url":"https:\/\/fatihsoysal.com\/blog\/javascript-for-donguleri-kapsamli-bir-rehber\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-02-18T10:41:03+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"9 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/javascript-for-donguleri-kapsamli-bir-rehber\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/javascript-for-donguleri-kapsamli-bir-rehber\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"JavaScript For D\u00f6ng\u00fcleri: Kapsaml\u0131 Bir Rehber","datePublished":"2026-02-18T10:41:03+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/javascript-for-donguleri-kapsamli-bir-rehber\/"},"wordCount":1388,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Javascript"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/javascript-for-donguleri-kapsamli-bir-rehber\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/javascript-for-donguleri-kapsamli-bir-rehber\/","url":"https:\/\/fatihsoysal.com\/blog\/javascript-for-donguleri-kapsamli-bir-rehber\/","name":"JavaScript For D\u00f6ng\u00fcleri: Kapsaml\u0131 Bir Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-02-18T10:41:03+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/javascript-for-donguleri-kapsamli-bir-rehber\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/javascript-for-donguleri-kapsamli-bir-rehber\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/javascript-for-donguleri-kapsamli-bir-rehber\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"JavaScript For D\u00f6ng\u00fcleri: Kapsaml\u0131 Bir Rehber"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/39298","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=39298"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/39298\/revisions"}],"predecessor-version":[{"id":39299,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/39298\/revisions\/39299"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=39298"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=39298"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=39298"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}