{"id":34334,"date":"2025-11-15T08:40:49","date_gmt":"2025-11-15T05:40:49","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=34334"},"modified":"2025-11-15T08:40:49","modified_gmt":"2025-11-15T05:40:49","slug":"javascript-dizi-metotlari-nasil-kullanilir-erisimci-metotlar","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/javascript-dizi-metotlari-nasil-kullanilir-erisimci-metotlar\/","title":{"rendered":"JavaScript Dizi Metotlar\u0131 Nas\u0131l Kullan\u0131l\u0131r: Eri\u015fimci Metotlar"},"content":{"rendered":"<p><body><\/p>\n<h2>JavaScript Dizi Metotlar\u0131 Nas\u0131l Kullan\u0131l\u0131r: Eri\u015fimci Metotlar<\/h2>\n<h2>Giri\u015f: JavaScript Dizileri ve Metotlar\u0131n G\u00fcc\u00fc<\/h2>\n<p>JavaScript, web geli\u015ftirmenin temel ta\u015flar\u0131ndan biridir ve verileri d\u00fczenlemenin, depolaman\u0131n ve \u00fczerinde i\u015flem yapman\u0131n en yayg\u0131n yollar\u0131ndan biri dizilerdir (Arrays). Diziler, birden fazla de\u011feri tek bir de\u011fi\u015fkende saklamam\u0131za olanak tan\u0131yan, s\u0131ral\u0131 koleksiyonlard\u0131r. Ancak dizileri ger\u00e7ekten g\u00fc\u00e7l\u00fc k\u0131lan \u015fey, JavaScript&#8217;in sundu\u011fu zengin dizi metotlar\u0131 setidir. Bu metotlar, diziler \u00fczerinde karma\u015f\u0131k i\u015flemleri bile tek bir sat\u0131rda veya birka\u00e7 sat\u0131rda kolayca yapmam\u0131z\u0131 sa\u011flar.<\/p>\n<p>Dizi metotlar\u0131 genellikle \u00fc\u00e7 ana kategoriye ayr\u0131l\u0131r:<br \/>\n1.  <strong>Eri\u015fimci (Accessor) Metotlar:<\/strong> Orijinal diziyi de\u011fi\u015ftirmeden (mutasyona u\u011fratmadan) dizi \u00fczerinde i\u015flemler yapar ve yeni bir de\u011fer (yeni bir dizi, bir dize veya ba\u015fka bir de\u011fer) d\u00f6nd\u00fcr\u00fcrler. Bu metotlar &#8220;immutable&#8221; (de\u011fi\u015fmez) prensibiyle \u00e7al\u0131\u015f\u0131r, yani orijinal veri b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc korurlar.<br \/>\n2.  <strong>De\u011fi\u015ftirici (Mutator) Metotlar:<\/strong> Orijinal diziyi do\u011frudan de\u011fi\u015ftirirler (mutasyona u\u011frat\u0131rlar). \u00d6rne\u011fin, bir eleman eklemek, \u00e7\u0131karmak, s\u0131ralamak veya ters \u00e7evirmek gibi i\u015flemler yaparlar.<br \/>\n3.  <strong>\u0130terasyon (Iteration) Metotlar\u0131:<\/strong> Dizinin her bir eleman\u0131 \u00fczerinde bir i\u015flem yapmak i\u00e7in kullan\u0131l\u0131rlar. <code>forEach<\/code>, <code>map<\/code>, <code>filter<\/code>, <code>reduce<\/code> gibi metotlar bu kategoriye girer ve genellikle bir geri arama (callback) fonksiyonu al\u0131rlar.<\/p>\n<p>Bu makalede, \u00f6zellikle <strong>Eri\u015fimci Metotlar<\/strong> \u00fczerine odaklanaca\u011f\u0131z. Eri\u015fimci metotlar, modern JavaScript geli\u015ftirme pratiklerinde, \u00f6zellikle React gibi durum y\u00f6netimini temel alan k\u00fct\u00fcphanelerde, veri b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc koruma ve \u00f6ng\u00f6r\u00fclebilir kod yazma a\u00e7\u0131s\u0131ndan kritik bir rol oynar. Orijinal diziyi de\u011fi\u015ftirmemeleri, beklenmedik yan etkileri \u00f6nler ve kodun daha g\u00fcvenli ve anla\u015f\u0131l\u0131r olmas\u0131n\u0131 sa\u011flar. \u015eimdi, bu g\u00fc\u00e7l\u00fc metotlar\u0131 detayl\u0131 bir \u015fekilde inceleyelim.<\/p>\n<h2>Temel Eri\u015fimci (Accessor) Metotlar<\/h2>\n<p>JavaScript, diziler \u00fczerinde i\u015flem yaparken orijinal diziyi de\u011fi\u015ftirmeden yeni bir sonu\u00e7 \u00fcretmek i\u00e7in kullanabilece\u011fimiz bir dizi eri\u015fimci metot sunar. Bu metotlar, veri b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc koruman\u0131n ve yan etkileri \u00f6nlemenin anahtar\u0131d\u0131r.<\/p>\n<h3><code>concat()<\/code> Metodu<\/h3>\n<p><code>concat()<\/code> metodu, iki veya daha fazla diziyi birle\u015ftirerek yeni bir dizi olu\u015fturur. Orijinal dizileri kesinlikle de\u011fi\u015ftirmez.<\/p>\n<p>*   <strong>Ama\u00e7:<\/strong> Birden fazla diziyi birle\u015ftirmek.<br \/>\n*   <strong>S\u00f6zdizimi:<\/strong> <code>array.concat(value1, value2, ..., valueN)<\/code><br \/>\n*   <strong>D\u00f6n\u00fc\u015f De\u011feri:<\/strong> Birle\u015ftirilmi\u015f elemanlar\u0131 i\u00e7eren yeni bir dizi.<br \/>\n*   <strong>\u00d6rnekler:<\/strong><\/p>\n<pre><code class=\"language-javascript\">const dizi1 = [1, 2, 3];\nconst dizi2 = [4, 5, 6];\nconst dizi3 = [7, 8, 9];\n\n\/\/ \u0130ki diziyi birle\u015ftirme\nconst birlesikDizi1 = dizi1.concat(dizi2);\nconsole.log(birlesikDizi1); \/\/ [1, 2, 3, 4, 5, 6]\nconsole.log(dizi1);        \/\/ [1, 2, 3] (Orijinal dizi de\u011fi\u015fmedi)\n\n\/\/ Birden fazla diziyi birle\u015ftirme\nconst birlesikDizi2 = dizi1.concat(dizi2, dizi3);\nconsole.log(birlesikDizi2); \/\/ [1, 2, 3, 4, 5, 6, 7, 8, 9]\n\n\/\/ Diziye tekil de\u011ferler veya birden fazla de\u011fer ekleme\nconst yeniDizi = dizi1.concat(4, 5, [6, 7]);\nconsole.log(yeniDizi); \/\/ [1, 2, 3, 4, 5, 6, 7]<\/code><\/pre>\n<p><code>concat()<\/code> metodu, \u00f6zellikle mevcut bir diziye yeni elemanlar veya ba\u015fka diziler ekleyerek yeni bir dizi olu\u015fturmak istedi\u011finizde \u00e7ok kullan\u0131\u015fl\u0131d\u0131r. Spread operat\u00f6r\u00fc (<code>...<\/code>) de benzer bir i\u015flevi g\u00f6rebilir, ancak <code>concat()<\/code> daha eski ve belirli senaryolarda daha okunabilir olabilir.<\/p>\n<h3><code>join()<\/code> Metodu<\/h3>\n<p><code>join()<\/code> metodu, bir dizinin t\u00fcm elemanlar\u0131n\u0131 birle\u015ftirerek tek bir dize (string) olu\u015fturur. Elemanlar aras\u0131na belirtilen bir ay\u0131r\u0131c\u0131 (separator) eklenir. E\u011fer ay\u0131r\u0131c\u0131 belirtilmezse, varsay\u0131lan olarak virg\u00fcl (<code>,<\/code>) kullan\u0131l\u0131r.<\/p>\n<p>*   <strong>Ama\u00e7:<\/strong> Dizi elemanlar\u0131n\u0131 bir dizeye d\u00f6n\u00fc\u015ft\u00fcrmek.<br \/>\n*   <strong>S\u00f6zdizimi:<\/strong> <code>array.join(separator)<\/code><br \/>\n*   <strong>D\u00f6n\u00fc\u015f De\u011feri:<\/strong> Birle\u015ftirilmi\u015f elemanlar\u0131 i\u00e7eren bir dize.<br \/>\n*   <strong>\u00d6rnekler:<\/strong><\/p>\n<pre><code class=\"language-javascript\">const meyveler = ['elma', 'armut', 'muz'];\n\n\/\/ Varsay\u0131lan ay\u0131r\u0131c\u0131 (virg\u00fcl) ile birle\u015ftirme\nconst dize1 = meyveler.join();\nconsole.log(dize1); \/\/ \"elma,armut,muz\"\n\n\/\/ Bo\u015fluk ile birle\u015ftirme\nconst dize2 = meyveler.join(' ');\nconsole.log(dize2); \/\/ \"elma armut muz\"\n\n\/\/ Tire ile birle\u015ftirme\nconst dize3 = meyveler.join('-');\nconsole.log(dize3); \/\/ \"elma-armut-muz\"\n\n\/\/ Bo\u015f dize ile birle\u015ftirme (elemanlar\u0131 biti\u015fik yazar)\nconst dize4 = meyveler.join('');\nconsole.log(dize4); \/\/ \"elmaarmutmuz\"\n\nconst sayilar = [1, null, undefined, 4];\n\/\/ null ve undefined elemanlar bo\u015f dize olarak i\u015flenir\nconst dize5 = sayilar.join('-');\nconsole.log(dize5); \/\/ \"1--4\"<\/code><\/pre>\n<p><code>join()<\/code> metodu, bir dizinin i\u00e7eri\u011fini kullan\u0131c\u0131ya g\u00f6stermek veya belirli bir formatta bir dize olu\u015fturmak i\u00e7in idealdir. \u00d6rne\u011fin, bir URL slug&#8217;\u0131 olu\u015ftururken veya bir CSV dosyas\u0131n\u0131n sat\u0131rlar\u0131n\u0131 haz\u0131rlarken kullan\u0131labilir.<\/p>\n<h3><code>slice()<\/code> Metodu<\/h3>\n<p><code>slice()<\/code> metodu, bir dizinin belirli bir b\u00f6l\u00fcm\u00fcn\u00fc &#8220;dilimleyerek&#8221; yeni bir dizi olu\u015fturur. Orijinal diziyi de\u011fi\u015ftirmez. <code>start<\/code> ve <code>end<\/code> indeksleri alabilir. <code>start<\/code> indeksi dahil, <code>end<\/code> indeksi hari\u00e7tir.<\/p>\n<p>*   <strong>Ama\u00e7:<\/strong> Bir dizinin bir b\u00f6l\u00fcm\u00fcn\u00fc kopyalamak ve yeni bir dizi olarak d\u00f6nd\u00fcrmek.<br \/>\n*   <strong>S\u00f6zdizimi:<\/strong> <code>array.slice(start, end)<\/code><br \/>\n*   <strong>D\u00f6n\u00fc\u015f De\u011feri:<\/strong> Se\u00e7ilen elemanlar\u0131 i\u00e7eren yeni bir dizi (s\u0131\u011f kopya).<br \/>\n*   <strong>Parametreler:<\/strong><br \/>\n    *   <code>start<\/code> (iste\u011fe ba\u011fl\u0131): Dilimlemeye ba\u015flanacak s\u0131f\u0131r tabanl\u0131 indeks. Negatif bir de\u011ferse, dizinin sonundan itibaren say\u0131l\u0131r. Varsay\u0131lan olarak 0&#8217;d\u0131r.<br \/>\n    *   <code>end<\/code> (iste\u011fe ba\u011fl\u0131): Dilimlemenin bitece\u011fi s\u0131f\u0131r tabanl\u0131 indeks. Bu indeksin eleman\u0131 dahil edilmez. Negatif bir de\u011ferse, dizinin sonundan itibaren say\u0131l\u0131r. Varsay\u0131lan olarak dizinin sonudur.<br \/>\n*   <strong>\u00d6rnekler:<\/strong><\/p>\n<pre><code class=\"language-javascript\">const hayvanlar = ['ant', 'bison', 'camel', 'duck', 'elephant'];\n\n\/\/ Ba\u015ftan 2. indeksten (camel) ba\u015flayarak sona kadar\nconst dilim1 = hayvanlar.slice(2);\nconsole.log(dilim1); \/\/ [\"camel\", \"duck\", \"elephant\"]\n\n\/\/ 1. indeksten (bison) ba\u015flay\u0131p 4. indekse (duck) kadar (4. dahil de\u011fil)\nconst dilim2 = hayvanlar.slice(1, 4);\nconsole.log(dilim2); \/\/ [\"bison\", \"camel\", \"duck\"]\n\n\/\/ Negatif indeksler: Sondan 2. elemandan (duck) ba\u015flay\u0131p sona kadar\nconst dilim3 = hayvanlar.slice(-2);\nconsole.log(dilim3); \/\/ [\"duck\", \"elephant\"]\n\n\/\/ Negatif indeksler: Sondan 3. elemandan (camel) ba\u015flay\u0131p sondan 1. elemana (elephant) kadar (sondan 1. dahil de\u011fil)\nconst dilim4 = hayvanlar.slice(-3, -1);\nconsole.log(dilim4); \/\/ [\"camel\", \"duck\"]\n\n\/\/ T\u00fcm dizinin s\u0131\u011f bir kopyas\u0131n\u0131 olu\u015fturma\nconst tamKopya = hayvanlar.slice();\nconsole.log(tamKopya); \/\/ [\"ant\", \"bison\", \"camel\", \"duck\", \"elephant\"]\nconsole.log(hayvanlar); \/\/ [\"ant\", \"bison\", \"camel\", \"duck\", \"elephant\"] (Orijinal dizi de\u011fi\u015fmedi)<\/code><\/pre>\n<p><code>slice()<\/code> metodu, \u00f6zellikle dizinin bir b\u00f6l\u00fcm\u00fcn\u00fc kopyalaman\u0131z veya bir alt dizi olu\u015fturman\u0131z gerekti\u011finde \u00e7ok kullan\u0131\u015fl\u0131d\u0131r. Unutulmamal\u0131d\u0131r ki <code>slice()<\/code>, nesneler i\u00e7eren dizilerde s\u0131\u011f bir kopya olu\u015fturur. Yani, kopyalanan dizi elemanlar\u0131 nesnelerse, bu nesneler hala orijinal dizideki nesnelerle ayn\u0131 referansa sahiptir.<\/p>\n<h3><code>indexOf()<\/code> Metodu<\/h3>\n<p><code>indexOf()<\/code> metodu, belirli bir eleman\u0131n dizideki ilk ge\u00e7ti\u011fi indeks numaras\u0131n\u0131 d\u00f6nd\u00fcr\u00fcr. E\u011fer eleman dizide bulunamazsa <code>-1<\/code> d\u00f6nd\u00fcr\u00fcr. Arama, belirtilen <code>fromIndex<\/code> konumundan ba\u015flar.<\/p>\n<p>*   <strong>Ama\u00e7:<\/strong> Bir eleman\u0131n dizideki ilk indeksini bulmak.<br \/>\n*   <strong>S\u00f6zdizimi:<\/strong> <code>array.indexOf(searchElement, fromIndex)<\/code><br \/>\n*   <strong>D\u00f6n\u00fc\u015f De\u011feri:<\/strong> Eleman\u0131n indeksi (say\u0131) veya -1.<br \/>\n*   <strong>Parametreler:<\/strong><br \/>\n    *   <code>searchElement<\/code>: Aranacak eleman.<br \/>\n    *   <code>fromIndex<\/code> (iste\u011fe ba\u011fl\u0131): Aramaya ba\u015flanacak indeks. Varsay\u0131lan olarak 0&#8217;d\u0131r. Negatif bir de\u011ferse, dizinin sonundan itibaren say\u0131l\u0131r.<br \/>\n*   <strong>\u00d6rnekler:<\/strong><\/p>\n<pre><code class=\"language-javascript\">const notlar = [10, 20, 30, 20, 40, 50];\n\n\/\/ 20'nin ilk ge\u00e7ti\u011fi indeks\nconst indeks1 = notlar.indexOf(20);\nconsole.log(indeks1); \/\/ 1\n\n\/\/ 60'\u0131n indeksi (bulunamad\u0131\u011f\u0131 i\u00e7in -1)\nconst indeks2 = notlar.indexOf(60);\nconsole.log(indeks2); \/\/ -1\n\n\/\/ 20'yi 2. indeksten (de\u011fer 30) ba\u015flayarak ara\nconst indeks3 = notlar.indexOf(20, 2);\nconsole.log(indeks3); \/\/ 3 (ikinci 20'nin indeksi)\n\n\/\/ Negatif fromIndex: Sondan 3. elemandan (40) ba\u015flayarak 20'yi ara\nconst indeks4 = notlar.indexOf(20, -3);\nconsole.log(indeks4); \/\/ 3 (arama 40'tan ba\u015flar, 20'yi bulur)\n\n\/\/ NaN arama (indexOf NaN'i bulamaz)\nconst karisikDizi = [1, 2, NaN, 4];\nconsole.log(karisikDizi.indexOf(NaN)); \/\/ -1<\/code><\/pre>\n<p><code>indexOf()<\/code> metodu, <code>===<\/code> (kat\u0131 e\u015fitlik) operat\u00f6r\u00fcn\u00fc kullanarak kar\u015f\u0131la\u015ft\u0131rma yapar. Bu, <code>NaN<\/code> (Not-a-Number) de\u011ferini bulamad\u0131\u011f\u0131 anlam\u0131na gelir, \u00e7\u00fcnk\u00fc <code>NaN === NaN<\/code> her zaman <code>false<\/code> d\u00f6ner.<\/p>\n<h3><code>lastIndexOf()<\/code> Metodu<\/h3>\n<p><code>lastIndexOf()<\/code> metodu, belirli bir eleman\u0131n dizideki son ge\u00e7ti\u011fi indeks numaras\u0131n\u0131 d\u00f6nd\u00fcr\u00fcr. E\u011fer eleman dizide bulunamazsa <code>-1<\/code> d\u00f6nd\u00fcr\u00fcr. Arama, belirtilen <code>fromIndex<\/code> konumundan geriye do\u011fru ba\u015flar.<\/p>\n<p>*   <strong>Ama\u00e7:<\/strong> Bir eleman\u0131n dizideki son indeksini bulmak.<br \/>\n*   <strong>S\u00f6zdizimi:<\/strong> <code>array.lastIndexOf(searchElement, fromIndex)<\/code><br \/>\n*   <strong>D\u00f6n\u00fc\u015f De\u011feri:<\/strong> Eleman\u0131n indeksi (say\u0131) veya -1.<br \/>\n*   <strong>Parametreler:<\/strong><br \/>\n    *   <code>searchElement<\/code>: Aranacak eleman.<br \/>\n    *   <code>fromIndex<\/code> (iste\u011fe ba\u011fl\u0131): Aramaya ba\u015flanacak indeks. Varsay\u0131lan olarak <code>array.length - 1<\/code> (dizinin son eleman\u0131) d\u0131r. Negatif bir de\u011ferse, dizinin sonundan itibaren say\u0131l\u0131r.<br \/>\n*   <strong>\u00d6rnekler:<\/strong><\/p>\n<pre><code class=\"language-javascript\">const notlar = [10, 20, 30, 20, 40, 50];\n\n\/\/ 20'nin son ge\u00e7ti\u011fi indeks\nconst indeks1 = notlar.lastIndexOf(20);\nconsole.log(indeks1); \/\/ 3\n\n\/\/ 60'\u0131n indeksi (bulunamad\u0131\u011f\u0131 i\u00e7in -1)\nconst indeks2 = notlar.lastIndexOf(60);\nconsole.log(indeks2); \/\/ -1\n\n\/\/ 20'yi 4. indeksten (de\u011fer 40) geriye do\u011fru ba\u015flayarak ara\nconst indeks3 = notlar.lastIndexOf(20, 4);\nconsole.log(indeks3); \/\/ 3 (40'tan geriye do\u011fru 20'yi bulur)\n\n\/\/ Negatif fromIndex: Sondan 4. elemandan (30) geriye do\u011fru ba\u015flayarak 20'yi ara\nconst indeks4 = notlar.lastIndexOf(20, -4); \/\/ -4 asl\u0131nda 2. indeks (30)\nconsole.log(indeks4); \/\/ 1 (arama 30'dan geriye do\u011fru ba\u015flar, ilk 20'yi bulur)<\/code><\/pre>\n<p><code>lastIndexOf()<\/code> da <code>indexOf()<\/code> gibi <code>===<\/code> operat\u00f6r\u00fcn\u00fc kullan\u0131r ve <code>NaN<\/code> de\u011ferini bulamaz. Bir eleman\u0131n dizide ka\u00e7 kez ge\u00e7ti\u011fini bulmak i\u00e7in <code>indexOf()<\/code> veya <code>lastIndexOf()<\/code>&#8216;u bir d\u00f6ng\u00fcyle birle\u015ftirebilirsiniz.<\/p>\n<h3><code>includes()<\/code> Metodu<\/h3>\n<p><code>includes()<\/code> metodu, bir dizinin belirli bir de\u011feri i\u00e7erip i\u00e7ermedi\u011fini kontrol eder ve <code>true<\/code> veya <code>false<\/code> d\u00f6nd\u00fcr\u00fcr. Bu metot, ES2016 ile birlikte gelmi\u015ftir ve \u00f6zellikle <code>NaN<\/code> de\u011ferlerini do\u011fru bir \u015fekilde kontrol edebilmesiyle <code>indexOf()<\/code>&#8216;tan ayr\u0131l\u0131r.<\/p>\n<p>*   <strong>Ama\u00e7:<\/strong> Bir dizinin belirli bir eleman\u0131 i\u00e7erip i\u00e7ermedi\u011fini kontrol etmek.<br \/>\n*   <strong>S\u00f6zdizimi:<\/strong> <code>array.includes(searchElement, fromIndex)<\/code><br \/>\n*   <strong>D\u00f6n\u00fc\u015f De\u011feri:<\/strong> Boolean (<code>true<\/code> veya <code>false<\/code>).<br \/>\n*   <strong>Parametreler:<\/strong><br \/>\n    *   <code>searchElement<\/code>: Aranacak eleman.<br \/>\n    *   <code>fromIndex<\/code> (iste\u011fe ba\u011fl\u0131): Aramaya ba\u015flanacak indeks. Varsay\u0131lan olarak 0&#8217;d\u0131r. Negatif bir de\u011ferse, dizinin sonundan itibaren say\u0131l\u0131r.<br \/>\n*   <strong>\u00d6rnekler:<\/strong><\/p>\n<pre><code class=\"language-javascript\">const sayilar = [1, 2, 3, 4, 5];\n\n\/\/ 3 i\u00e7eriyor mu?\nconsole.log(sayilar.includes(3)); \/\/ true\n\n\/\/ 7 i\u00e7eriyor mu?\nconsole.log(sayilar.includes(7)); \/\/ false\n\n\/\/ 3'\u00fc 3. indeksten (de\u011fer 4) ba\u015flayarak ara\nconsole.log(sayilar.includes(3, 3)); \/\/ false (3. indeksten sonra 3 yok)\n\n\/\/ Negatif fromIndex: Sondan 2. elemandan (4) ba\u015flayarak 4'\u00fc ara\nconsole.log(sayilar.includes(4, -2)); \/\/ true\n\n\/\/ NaN ile kullan\u0131m (indexOf'tan farkl\u0131 olarak NaN'i bulur)\nconst karisikDizi = [1, 2, NaN, 4];\nconsole.log(karisikDizi.includes(NaN)); \/\/ true<\/code><\/pre>\n<p><code>includes()<\/code> metodu, bir eleman\u0131n varl\u0131\u011f\u0131n\u0131 kontrol etmek i\u00e7in \u00e7ok daha okunabilir ve g\u00fcvenilir bir yol sunar, \u00f6zellikle <code>NaN<\/code> gibi \u00f6zel de\u011ferlerle \u00e7al\u0131\u015f\u0131rken.<\/p>\n<h3><code>toString()<\/code> Metodu<\/h3>\n<p><code>toString()<\/code> metodu, bir diziyi ve elemanlar\u0131n\u0131 temsil eden bir dize d\u00f6nd\u00fcr\u00fcr. Elemanlar virg\u00fclle ayr\u0131l\u0131r. Bu metot, asl\u0131nda <code>join(',')<\/code> ile ayn\u0131 sonucu verir.<\/p>\n<p>*   <strong>Ama\u00e7:<\/strong> Bir diziyi dizeye d\u00f6n\u00fc\u015ft\u00fcrmek.<br \/>\n*   <strong>S\u00f6zdizimi:<\/strong> <code>array.toString()<\/code><br \/>\n*   <strong>D\u00f6n\u00fc\u015f De\u011feri:<\/strong> Bir dize.<br \/>\n*   <strong>\u00d6rnekler:<\/strong><\/p>\n<pre><code class=\"language-javascript\">const meyveler = ['elma', 'armut', 'muz'];\nconst dize1 = meyveler.toString();\nconsole.log(dize1); \/\/ \"elma,armut,muz\"\n\nconst sayilar = [1, 2, 3];\nconst dize2 = sayilar.toString();\nconsole.log(dize2); \/\/ \"1,2,3\"\n\nconst icIceDizi = [1, [2, 3], 4];\nconst dize3 = icIceDizi.toString();\nconsole.log(dize3); \/\/ \"1,2,3,4\" (\u0130\u00e7 i\u00e7e diziler de virg\u00fclle ayr\u0131l\u0131r)<\/code><\/pre>\n<p><code>toString()<\/code> genellikle dizileri basit bir metin format\u0131nda g\u00f6r\u00fcnt\u00fclemek veya hata ay\u0131klama s\u0131ras\u0131nda dizinin i\u00e7eri\u011fini h\u0131zl\u0131ca g\u00f6rmek i\u00e7in kullan\u0131l\u0131r.<\/p>\n<h3><code>toLocaleString()<\/code> Metodu<\/h3>\n<p><code>toLocaleString()<\/code> metodu, <code>toString()<\/code> metoduna benzer \u015fekilde bir diziyi ve elemanlar\u0131n\u0131 temsil eden bir dize d\u00f6nd\u00fcr\u00fcr. Ancak, bu metot dizinin elemanlar\u0131n\u0131 yerel ayarlara (locale) duyarl\u0131 bir \u015fekilde dizeye d\u00f6n\u00fc\u015ft\u00fcr\u00fcr. \u00d6zellikle say\u0131lar\u0131, tarihleri ve para birimlerini farkl\u0131 dillerin ve b\u00f6lgelerin formatlar\u0131na g\u00f6re bi\u00e7imlendirmek i\u00e7in kullan\u0131\u015fl\u0131d\u0131r.<\/p>\n<p>*   <strong>Ama\u00e7:<\/strong> Diziyi yerel ayarlara duyarl\u0131 bir dizeye d\u00f6n\u00fc\u015ft\u00fcrmek.<br \/>\n*   <strong>S\u00f6zdizimi:<\/strong> <code>array.toLocaleString(locales, options)<\/code><br \/>\n*   <strong>D\u00f6n\u00fc\u015f De\u011feri:<\/strong> Yerel ayarlara duyarl\u0131 bir dize.<br \/>\n*   <strong>Parametreler:<\/strong><br \/>\n    *   <code>locales<\/code> (iste\u011fe ba\u011fl\u0131): Dil veya b\u00f6lge bilgisini i\u00e7eren bir dize veya dize dizisi (\u00f6rn. <code>'en-US'<\/code>, <code>'tr-TR'<\/code>).<br \/>\n    *   <code>options<\/code> (iste\u011fe ba\u011fl\u0131): Bi\u00e7imlendirme se\u00e7eneklerini belirten bir nesne.<br \/>\n*   <strong>\u00d6rnekler:<\/strong><\/p>\n<pre><code class=\"language-javascript\">const sayilar = [1000, 1234.56, new Date()];\n\n\/\/ Varsay\u0131lan yerel ayar\nconsole.log(sayilar.toLocaleString()); \/\/ \"1.000, 1.234,56, 11.05.2023 10:30:00\" (\u00d6rnek: T\u00fcrkiye yerel ayar\u0131)\n\n\/\/ Amerikan \u0130ngilizcesi yerel ayar\u0131 ile\nconsole.log(sayilar.toLocaleString('en-US')); \/\/ \"1,000, 1,234.56, 5\/11\/2023, 10:30:00 AM\"\n\n\/\/ Alman yerel ayar\u0131 ile\nconsole.log(sayilar.toLocaleString('de-DE')); \/\/ \"1.000, 1.234,56, 11.5.2023, 10:30:00\"\n\nconst fiyatlar = [100.5, 200];\n\/\/ Para birimi bi\u00e7imlendirmesi\nconsole.log(fiyatlar.toLocaleString('tr-TR', { style: 'currency', currency: 'TRY' })); \/\/ \"100,50 TL, 200,00 TL\"\nconsole.log(fiyatlar.toLocaleString('en-US', { style: 'currency', currency: 'USD' })); \/\/ \"$100.50, $200.00\"<\/code><\/pre>\n<p><code>toLocaleString()<\/code> metodu, uluslararas\u0131la\u015fma (i18n) gerektiren uygulamalarda, kullan\u0131c\u0131lar\u0131n kendi b\u00f6lgelerine ve dillerine uygun formatlarda veri g\u00f6rmesini sa\u011flamak i\u00e7in \u00e7ok de\u011ferlidir.<\/p>\n<h3><code>at()<\/code> Metodu<\/h3>\n<p><code>at()<\/code> metodu, bir dizinin belirli bir indeksindeki eleman\u0131 d\u00f6nd\u00fcr\u00fcr. ES2022 ile eklenmi\u015f olup, \u00f6zellikle negatif indekslerle \u00e7al\u0131\u015f\u0131rken k\u00f6\u015feli parantez notasyonuna (<code>array[index]<\/code>) g\u00f6re daha esnek ve okunabilir bir yol sunar. Negatif indeksler, dizinin sonundan itibaren elemanlar\u0131 se\u00e7mek i\u00e7in kullan\u0131labilir.<\/p>\n<p>*   <strong>Ama\u00e7:<\/strong> Bir dizinin belirli bir indeksindeki eleman\u0131 almak, \u00f6zellikle negatif indekslerle.<br \/>\n*   <strong>S\u00f6zdizimi:<\/strong> <code>array.at(index)<\/code><br \/>\n*   <strong>D\u00f6n\u00fc\u015f De\u011feri:<\/strong> Belirtilen indeksteki eleman veya indeks ge\u00e7erli de\u011filse <code>undefined<\/code>.<br \/>\n*   <strong>\u00d6rnekler:<\/strong><\/p>\n<pre><code class=\"language-javascript\">const meyveler = ['elma', 'armut', 'muz', '\u00e7ilek', '\u00fcz\u00fcm'];\n\n\/\/ Pozitif indeks: 2. eleman (muz)\nconsole.log(meyveler.at(2)); \/\/ \"muz\"\nconsole.log(meyveler[2]);    \/\/ \"muz\" (ayn\u0131)\n\n\/\/ Negatif indeks: Sondan 1. eleman (\u00fcz\u00fcm)\nconsole.log(meyveler.at(-1)); \/\/ \"\u00fcz\u00fcm\"\n\/\/ K\u00f6\u015feli parantez ile ayn\u0131 i\u015flemi yapmak daha karma\u015f\u0131kt\u0131r:\nconsole.log(meyveler[meyveler.length - 1]); \/\/ \"\u00fcz\u00fcm\"\n\n\/\/ Negatif indeks: Sondan 3. eleman (muz)\nconsole.log(meyveler.at(-3)); \/\/ \"muz\"\n\n\/\/ Ge\u00e7ersiz indeks (undefined d\u00f6ner)\nconsole.log(meyveler.at(10)); \/\/ undefined\nconsole.log(meyveler.at(-10)); \/\/ undefined<\/code><\/pre>\n<p><code>at()<\/code> metodu, dizinin son eleman\u0131na veya sondan belirli bir elemana eri\u015fmek i\u00e7in <code>array[array.length - N]<\/code> yazmak yerine daha k\u0131sa ve daha sezgisel bir yol sunar. Bu, kodun okunabilirli\u011fini art\u0131r\u0131r ve hata yapma olas\u0131l\u0131\u011f\u0131n\u0131 azalt\u0131r.<\/p>\n<h2>Neden Eri\u015fimci Metotlar \u00d6nemlidir?<\/h2>\n<p>Eri\u015fimci metotlar\u0131n modern JavaScript geli\u015ftirmedeki \u00f6nemi, onlar\u0131n temel \u00e7al\u0131\u015fma prensibinden, yani orijinal diziyi de\u011fi\u015ftirmeden yeni bir sonu\u00e7 d\u00f6nd\u00fcrmelerinden gelir. Bu &#8220;de\u011fi\u015fmezlik&#8221; (immutability) prensibi, bir\u00e7ok avantaj sunar:<\/p>\n<p>1.  <strong>Veri B\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc Koruma:<\/strong> Orijinal verilerinizi asla de\u011fi\u015ftirmedi\u011finiz i\u00e7in, uygulaman\u0131z\u0131n farkl\u0131 yerlerinde ayn\u0131 diziye referans verildi\u011finde beklenmedik de\u011fi\u015fikliklerle kar\u015f\u0131la\u015fmazs\u0131n\u0131z. Bu, \u00f6zellikle karma\u015f\u0131k uygulamalarda durum y\u00f6netimi (state management) i\u00e7in hayati \u00f6neme sahiptir.<br \/>\n2.  <strong>\u00d6ng\u00f6r\u00fclebilirlik:<\/strong> Bir fonksiyonun veya kod blo\u011funun bir dizi \u00fczerinde i\u015flem yaparken orijinal diziyi de\u011fi\u015ftirip de\u011fi\u015ftirmeyece\u011fini bilmek, kodun davran\u0131\u015f\u0131n\u0131 tahmin etmeyi kolayla\u015ft\u0131r\u0131r. Eri\u015fimci metotlar her zaman yeni bir dizi veya de\u011fer d\u00f6nd\u00fcrd\u00fc\u011f\u00fc i\u00e7in, yan etkileri konusunda endi\u015felenmenize gerek kalmaz.<br \/>\n3.  <strong>Hata Ay\u0131klama Kolayl\u0131\u011f\u0131:<\/strong> Orijinal verilerin de\u011fi\u015fmemesi, bir hatan\u0131n kayna\u011f\u0131n\u0131 bulmay\u0131 kolayla\u015ft\u0131r\u0131r. E\u011fer bir hata olu\u015fursa, dizinin \u00f6nceki durumlar\u0131n\u0131 inceleyerek hatan\u0131n hangi noktada meydana geldi\u011fini daha rahat tespit edebilirsiniz.<br \/>\n4.  <strong>Fonksiyonel Programlama Prensibi:<\/strong> Eri\u015fimci metotlar, fonksiyonel programlama paradigmalar\u0131yla uyumludur. Fonksiyonel programlama, yan etkileri olmayan (pure functions) ve de\u011fi\u015fmez verilerle \u00e7al\u0131\u015fan fonksiyonlar\u0131 te\u015fvik eder. Bu, daha mod\u00fcler, test edilebilir ve yeniden kullan\u0131labilir kod yazmaya yard\u0131mc\u0131 olur.<br \/>\n5.  <strong>De\u011fi\u015fiklik Alg\u0131lama (Change Detection):<\/strong> React, Vue gibi modern UI k\u00fct\u00fcphaneleri, bile\u015fenlerin durum de\u011fi\u015fikliklerini alg\u0131lamak i\u00e7in genellikle referans kar\u015f\u0131la\u015ft\u0131rmas\u0131 yapar. E\u011fer bir dizi de\u011fi\u015ftirici metotlarla do\u011frudan de\u011fi\u015ftirilirse, referans\u0131 ayn\u0131 kalaca\u011f\u0131 i\u00e7in k\u00fct\u00fcphane de\u011fi\u015fikli\u011fi alg\u0131lamayabilir ve UI g\u00fcncellenmeyebilir. Eri\u015fimci metotlar yeni bir dizi referans\u0131 d\u00f6nd\u00fcrd\u00fc\u011f\u00fc i\u00e7in, k\u00fct\u00fcphaneler de\u011fi\u015fikli\u011fi kolayca alg\u0131layabilir ve UI&#8217;yi g\u00fcncelleyebilir.<br \/>\n6.  <strong>Zincirleme (Chaining):<\/strong> Bir\u00e7ok eri\u015fimci metot, yeni bir dizi d\u00f6nd\u00fcrd\u00fc\u011f\u00fc i\u00e7in zincirleme olarak kullan\u0131labilir. Bu, birden fazla i\u015flemi tek bir ak\u0131c\u0131 ifadeyle ger\u00e7ekle\u015ftirmeyi sa\u011flar ve kodun daha kompakt ve okunabilir olmas\u0131n\u0131 sa\u011flar. \u00d6rne\u011fin: <code>dizi.slice(1).concat([6, 7]).join('-')<\/code>.<\/p>\n<h2>De\u011fi\u015ftirici (Mutator) Metotlarla Kar\u015f\u0131la\u015ft\u0131rma<\/h2>\n<p>Eri\u015fimci metotlar\u0131n \u00f6nemini daha iyi anlamak i\u00e7in, de\u011fi\u015ftirici (mutator) metotlarla aralar\u0131ndaki temel fark\u0131 vurgulamak \u00f6nemlidir.<\/p>\n<p><strong>De\u011fi\u015ftirici Metotlar (Mutator Methods):<\/strong><br \/>\n*   Orijinal diziyi do\u011frudan de\u011fi\u015ftirirler.<br \/>\n*   \u00d6rnekler: <code>push()<\/code>, <code>pop()<\/code>, <code>shift()<\/code>, <code>unshift()<\/code>, <code>splice()<\/code>, <code>sort()<\/code>, <code>reverse()<\/code>, <code>fill()<\/code>.<br \/>\n*   Genellikle d\u00f6nd\u00fcrd\u00fckleri de\u011fer, de\u011fi\u015ftirilen dizinin kendisi veya yap\u0131lan i\u015flemle ilgili bir de\u011ferdir (\u00f6rn. <code>pop()<\/code> \u00e7\u0131kar\u0131lan eleman\u0131 d\u00f6nd\u00fcr\u00fcr, <code>push()<\/code> yeni uzunlu\u011fu d\u00f6nd\u00fcr\u00fcr).<br \/>\n*   Kullan\u0131ld\u0131klar\u0131nda dikkatli olunmal\u0131d\u0131r, \u00e7\u00fcnk\u00fc di\u011fer kod par\u00e7alar\u0131nda beklenmedik yan etkilere yol a\u00e7abilirler.<\/p>\n<p><strong>\u00d6rnek:<\/strong><\/p>\n<pre><code class=\"language-javascript\">const sayilarMutator = [1, 2, 3];\nsayilarMutator.push(4); \/\/ Orijinal diziyi de\u011fi\u015ftirir\nconsole.log(sayilarMutator); \/\/ [1, 2, 3, 4]\n\nconst siralanacakDizi = [3, 1, 2];\nsiralanacakDizi.sort(); \/\/ Orijinal diziyi de\u011fi\u015ftirir\nconsole.log(siralanacakDizi); \/\/ [1, 2, 3]<\/code><\/pre>\n<p><strong>Eri\u015fimci Metotlar (Accessor Methods):<\/strong><br \/>\n*   Orijinal diziyi de\u011fi\u015ftirmezler; her zaman yeni bir dizi veya de\u011fer d\u00f6nd\u00fcr\u00fcrler.<br \/>\n*   \u00d6rnekler: <code>concat()<\/code>, <code>slice()<\/code>, <code>join()<\/code>, <code>indexOf()<\/code>, <code>includes()<\/code>, <code>at()<\/code>.<br \/>\n*   Yan etkileri yoktur, bu da onlar\u0131 daha g\u00fcvenli ve \u00f6ng\u00f6r\u00fclebilir k\u0131lar.<\/p>\n<p><strong>\u00d6rnek:<\/strong><\/p>\n<pre><code class=\"language-javascript\">const sayilarAccessor = [1, 2, 3];\nconst yeniSayilar = sayilarAccessor.concat(4); \/\/ Yeni bir dizi d\u00f6nd\u00fcr\u00fcr\nconsole.log(yeniSayilar);    \/\/ [1, 2, 3, 4]\nconsole.log(sayilarAccessor); \/\/ [1, 2, 3] (Orijinal dizi de\u011fi\u015fmedi)\n\nconst dilimlenenDizi = sayilarAccessor.slice(0, 2); \/\/ Yeni bir dizi d\u00f6nd\u00fcr\u00fcr\nconsole.log(dilimlenenDizi); \/\/ [1, 2]\nconsole.log(sayilarAccessor); \/\/ [1, 2, 3] (Orijinal dizi de\u011fi\u015fmedi)<\/code><\/pre>\n<p>Ne zaman hangi metodu kullanaca\u011f\u0131n\u0131z, ihtiyac\u0131n\u0131za ba\u011fl\u0131d\u0131r. E\u011fer orijinal diziyi ger\u00e7ekten de\u011fi\u015ftirmeniz gerekiyorsa (\u00f6rne\u011fin, bir kuyruktan eleman \u00e7\u0131karmak gibi), de\u011fi\u015ftirici metotlar uygun olabilir. Ancak, \u00f6zellikle bir uygulaman\u0131n durumunu y\u00f6netirken veya veri b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc koruman\u0131n kritik oldu\u011fu durumlarda, eri\u015fimci metotlar\u0131 tercih etmek en iyi uygulamad\u0131r. Modern JavaScript geli\u015ftirme, m\u00fcmk\u00fcn oldu\u011funca de\u011fi\u015fmez (immutable) veri yap\u0131lar\u0131n\u0131 kullanmay\u0131 te\u015fvik eder.<\/p>\n<h2>En \u0130yi Uygulamalar ve \u0130pu\u00e7lar\u0131<\/h2>\n<p>Eri\u015fimci metotlar\u0131 etkin bir \u015fekilde kullanmak i\u00e7in baz\u0131 en iyi uygulamalar ve ipu\u00e7lar\u0131:<\/p>\n<p>1.  <strong>De\u011fi\u015fmezli\u011fi Tercih Edin:<\/strong> M\u00fcmk\u00fcn oldu\u011funca, orijinal diziyi de\u011fi\u015ftirmeyen eri\u015fimci metotlar\u0131 kullan\u0131n. Bu, \u00f6zellikle b\u00fcy\u00fck ve karma\u015f\u0131k uygulamalarda hatalar\u0131 azalt\u0131r ve kodun \u00f6ng\u00f6r\u00fclebilirli\u011fini art\u0131r\u0131r. Bir\u00e7ok modern JavaScript \u00e7er\u00e7evesi ve k\u00fct\u00fcphanesi (\u00f6rn. React), bu yakla\u015f\u0131m\u0131 te\u015fvik eder.<br \/>\n2.  <strong>S\u0131\u011f Kopyaya Dikkat Edin:<\/strong> <code>slice()<\/code> veya <code>concat()<\/code> gibi metotlar, nesneler i\u00e7eren dizilerde &#8220;s\u0131\u011f kopya&#8221; (shallow copy) olu\u015fturur. Bu, yeni dizinin elemanlar\u0131 orijinal dizideki elemanlarla ayn\u0131 nesne referanslar\u0131na sahip olaca\u011f\u0131 anlam\u0131na gelir. E\u011fer i\u00e7 i\u00e7e nesneleriniz varsa ve bunlar\u0131 da de\u011fi\u015ftirmeden kopyalamak istiyorsan\u0131z, derin kopya (deep copy) y\u00f6ntemlerini (\u00f6rn. <code>JSON.parse(JSON.stringify(array))<\/code> veya bir derin kopya k\u00fct\u00fcphanesi kullanmak) d\u00fc\u015f\u00fcnmelisiniz.<\/p>\n<pre><code class=\"language-javascript\">const ogeler = [{ id: 1, ad: 'A' }, { id: 2, ad: 'B' }];\n    const yeniOgeler = ogeler.slice(); \/\/ S\u0131\u011f kopya\n    yeniOgeler[0].ad = 'Yeni A';\n    console.log(ogeler[0].ad); \/\/ \"Yeni A\" - Orijinal dizi de etkilendi!<\/code><\/pre>\n<p>3.  <strong>Zincirleme Kullan\u0131m\u0131:<\/strong> Eri\u015fimci metotlar genellikle yeni bir dizi d\u00f6nd\u00fcrd\u00fc\u011f\u00fc i\u00e7in, birden fazla i\u015flemi tek bir sat\u0131rda zincirleyerek ger\u00e7ekle\u015ftirebilirsiniz. Bu, kodunuzu daha k\u0131sa ve daha ifade edici hale getirebilir.<\/p>\n<pre><code class=\"language-javascript\">const sayilar = [1, 2, 3, 4, 5];\n    const islenmisSayilar = sayilar\n        .slice(1, 4) \/\/ [2, 3, 4]\n        .concat(6, 7) \/\/ [2, 3, 4, 6, 7]\n        .join('-');  \/\/ \"2-3-4-6-7\"\n    console.log(islenmisSayilar);<\/code><\/pre>\n<p>4.  <strong>Performans\u0131 G\u00f6z \u00d6n\u00fcnde Bulundurun (Ancak A\u015f\u0131r\u0131 D\u00fc\u015f\u00fcnmeyin):<\/strong> \u00c7o\u011fu modern uygulamada, eri\u015fimci metotlar\u0131n performans maliyeti genellikle ihmal edilebilir d\u00fczeydedir. Yeni bir dizi olu\u015fturmak, orijinal diziyi de\u011fi\u015ftirmekten biraz daha fazla bellek ve i\u015flem s\u00fcresi gerektirebilir, ancak bu fark genellikle sadece \u00e7ok b\u00fcy\u00fck dizilerde veya performans\u0131n kritik oldu\u011fu \u00f6zel durumlarda belirginle\u015fir. Genel olarak, okunabilirlik ve s\u00fcrd\u00fcr\u00fclebilirlik, k\u00fc\u00e7\u00fck performans farklar\u0131ndan daha \u00f6nemlidir.<br \/>\n5.  <strong><code>at()<\/code> Kullan\u0131m\u0131n\u0131 Benimseyin:<\/strong> Dizinin son eleman\u0131na veya sondan belirli bir elemana eri\u015fmek i\u00e7in <code>array.at(-1)<\/code> veya <code>array.at(-N)<\/code> kullanmak, <code>array[array.length - 1]<\/code> gibi daha uzun ve hata yapmaya daha a\u00e7\u0131k ifadelerden \u00e7ok daha okunabilir ve pratiktir.<br \/>\n6.  <strong>Do\u011fru Metodu Do\u011fru Ama\u00e7 \u0130\u00e7in Kullan\u0131n:<\/strong> Her metodun belirli bir amac\u0131 vard\u0131r. \u00d6rne\u011fin, bir eleman\u0131n varl\u0131\u011f\u0131n\u0131 kontrol etmek i\u00e7in <code>includes()<\/code> kullanmak, <code>indexOf()<\/code> ile <code>-1<\/code> kontrol\u00fc yapmaktan daha temizdir. Diziyi bir dizeye d\u00f6n\u00fc\u015ft\u00fcrmek i\u00e7in <code>join()<\/code> veya <code>toString()<\/code> kullan\u0131rken, uluslararas\u0131la\u015fma gerekiyorsa <code>toLocaleString()<\/code> tercih edin.<\/p>\n<p>Bu ipu\u00e7lar\u0131n\u0131 takip ederek, JavaScript&#8217;te dizi eri\u015fimci metotlar\u0131n\u0131 daha etkili ve g\u00fcvenli bir \u015fekilde kullanabilir, daha sa\u011flam ve s\u00fcrd\u00fcr\u00fclebilir uygulamalar geli\u015ftirebilirsiniz.<\/p>\n<h2>Sonu\u00e7<\/h2>\n<p>JavaScript&#8217;teki dizi eri\u015fimci metotlar\u0131, modern web geli\u015ftirmenin temel ta\u015flar\u0131ndan biridir. Orijinal diziyi de\u011fi\u015ftirmeden yeni bir sonu\u00e7 d\u00f6nd\u00fcrme yetenekleri sayesinde, veri b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc korur, kodun \u00f6ng\u00f6r\u00fclebilirli\u011fini art\u0131r\u0131r ve yan etkileri en aza indirirler. Bu \u00f6zellikler, \u00f6zellikle React, Vue gibi durum y\u00f6netimi odakl\u0131 k\u00fct\u00fcphanelerle \u00e7al\u0131\u015f\u0131rken veya genel olarak daha sa\u011flam, bak\u0131m\u0131 kolay ve hata ay\u0131klamas\u0131 basit kod yazmak istedi\u011finizde paha bi\u00e7ilmezdir.<\/p>\n<p>Bu makalede inceledi\u011fimiz <code>concat()<\/code>, <code>join()<\/code>, <code>slice()<\/code>, <code>indexOf()<\/code>, <code>lastIndexOf()<\/code>, <code>includes()<\/code>, <code>toString()<\/code>, <code>toLocaleString()<\/code> ve <code>at()<\/code> metotlar\u0131, dizilerle \u00e7al\u0131\u015f\u0131rken kar\u015f\u0131la\u015faca\u011f\u0131n\u0131z yayg\u0131n senaryolar\u0131n \u00e7o\u011funu kapsar. Her birinin kendine \u00f6zg\u00fc bir amac\u0131 ve kullan\u0131m alan\u0131 vard\u0131r. Bu metotlar\u0131 ustaca kullanmak, JavaScript kodunuzu daha temiz, daha verimli ve daha profesyonel hale getirecektir.<\/p>\n<p>De\u011fi\u015fmezlik prensibini benimsemek, fonksiyonel programlama yakla\u015f\u0131mlar\u0131n\u0131 desteklemek ve kodunuzun farkl\u0131 b\u00f6l\u00fcmlerinde beklenmedik durum de\u011fi\u015fikliklerini \u00f6nlemek i\u00e7in eri\u015fimci metotlar\u0131 birincil tercihiniz yap\u0131n. Dizi metotlar\u0131n\u0131 \u00f6\u011frenmek ve ustala\u015fmak, her JavaScript geli\u015ftiricisinin ara\u00e7 setinde olmas\u0131 gereken temel bir beceridir. Bu metotlar\u0131 pratik yaparak ve farkl\u0131 senaryolarda kullanarak bilgi ve becerilerinizi peki\u015ftirmeye devam edin. Unutmay\u0131n, iyi kod, sadece \u00e7al\u0131\u015fan kod de\u011fil, ayn\u0131 zamanda anla\u015f\u0131l\u0131r, bak\u0131m\u0131 kolay ve g\u00fcvenilir koddur.<\/p>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"JavaScript Dizi Metotlar\u0131 Nas\u0131l Kullan\u0131l\u0131r: Eri\u015fimci Metotlar\nGiri\u015f: JavaScript Dizileri ve Metotlar\u0131n G\u00fcc\u00fc\nJavaScript, web geli\u015ftirmenin","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-34334","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 Dizi Metotlar\u0131 Nas\u0131l Kullan\u0131l\u0131r: Eri\u015fimci Metotlar - 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-dizi-metotlari-nasil-kullanilir-erisimci-metotlar\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"JavaScript Dizi Metotlar\u0131 Nas\u0131l Kullan\u0131l\u0131r: Eri\u015fimci Metotlar\" \/>\n<meta property=\"og:description\" content=\"JavaScript Dizi Metotlar\u0131 Nas\u0131l Kullan\u0131l\u0131r: Eri\u015fimci Metotlar Giri\u015f: JavaScript Dizileri ve Metotlar\u0131n G\u00fcc\u00fc JavaScript, web geli\u015ftirmenin\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/javascript-dizi-metotlari-nasil-kullanilir-erisimci-metotlar\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-15T05:40:49+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=\"18 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/javascript-dizi-metotlari-nasil-kullanilir-erisimci-metotlar\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/javascript-dizi-metotlari-nasil-kullanilir-erisimci-metotlar\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"JavaScript Dizi Metotlar\u0131 Nas\u0131l Kullan\u0131l\u0131r: Eri\u015fimci Metotlar\",\"datePublished\":\"2025-11-15T05:40:49+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/javascript-dizi-metotlari-nasil-kullanilir-erisimci-metotlar\/\"},\"wordCount\":2600,\"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-dizi-metotlari-nasil-kullanilir-erisimci-metotlar\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/javascript-dizi-metotlari-nasil-kullanilir-erisimci-metotlar\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/javascript-dizi-metotlari-nasil-kullanilir-erisimci-metotlar\/\",\"name\":\"JavaScript Dizi Metotlar\u0131 Nas\u0131l Kullan\u0131l\u0131r: Eri\u015fimci Metotlar - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-11-15T05:40:49+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/javascript-dizi-metotlari-nasil-kullanilir-erisimci-metotlar\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/javascript-dizi-metotlari-nasil-kullanilir-erisimci-metotlar\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/javascript-dizi-metotlari-nasil-kullanilir-erisimci-metotlar\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"JavaScript Dizi Metotlar\u0131 Nas\u0131l Kullan\u0131l\u0131r: Eri\u015fimci Metotlar\"}]},{\"@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 Dizi Metotlar\u0131 Nas\u0131l Kullan\u0131l\u0131r: Eri\u015fimci Metotlar - 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-dizi-metotlari-nasil-kullanilir-erisimci-metotlar\/","og_locale":"tr_TR","og_type":"article","og_title":"JavaScript Dizi Metotlar\u0131 Nas\u0131l Kullan\u0131l\u0131r: Eri\u015fimci Metotlar","og_description":"JavaScript Dizi Metotlar\u0131 Nas\u0131l Kullan\u0131l\u0131r: Eri\u015fimci Metotlar Giri\u015f: JavaScript Dizileri ve Metotlar\u0131n G\u00fcc\u00fc JavaScript, web geli\u015ftirmenin","og_url":"https:\/\/fatihsoysal.com\/blog\/javascript-dizi-metotlari-nasil-kullanilir-erisimci-metotlar\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-11-15T05:40:49+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"18 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/javascript-dizi-metotlari-nasil-kullanilir-erisimci-metotlar\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/javascript-dizi-metotlari-nasil-kullanilir-erisimci-metotlar\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"JavaScript Dizi Metotlar\u0131 Nas\u0131l Kullan\u0131l\u0131r: Eri\u015fimci Metotlar","datePublished":"2025-11-15T05:40:49+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/javascript-dizi-metotlari-nasil-kullanilir-erisimci-metotlar\/"},"wordCount":2600,"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-dizi-metotlari-nasil-kullanilir-erisimci-metotlar\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/javascript-dizi-metotlari-nasil-kullanilir-erisimci-metotlar\/","url":"https:\/\/fatihsoysal.com\/blog\/javascript-dizi-metotlari-nasil-kullanilir-erisimci-metotlar\/","name":"JavaScript Dizi Metotlar\u0131 Nas\u0131l Kullan\u0131l\u0131r: Eri\u015fimci Metotlar - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-11-15T05:40:49+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/javascript-dizi-metotlari-nasil-kullanilir-erisimci-metotlar\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/javascript-dizi-metotlari-nasil-kullanilir-erisimci-metotlar\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/javascript-dizi-metotlari-nasil-kullanilir-erisimci-metotlar\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"JavaScript Dizi Metotlar\u0131 Nas\u0131l Kullan\u0131l\u0131r: Eri\u015fimci Metotlar"}]},{"@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\/34334","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=34334"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/34334\/revisions"}],"predecessor-version":[{"id":34335,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/34334\/revisions\/34335"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=34334"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=34334"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=34334"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}