{"id":30767,"date":"2025-10-01T21:41:51","date_gmt":"2025-10-01T18:41:51","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=30767"},"modified":"2025-10-01T21:41:51","modified_gmt":"2025-10-01T18:41:51","slug":"javascriptte-dizeler-ve-diziler-icin-indexof-metodunu-kesfetmek","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/javascriptte-dizeler-ve-diziler-icin-indexof-metodunu-kesfetmek\/","title":{"rendered":"JavaScript&#8217;te Dizeler ve Diziler \u0130\u00e7in indexOf Metodunu Ke\u015ffetmek"},"content":{"rendered":"<p><body><\/p>\n<h2>JavaScript&#8217;te Dizeler ve Diziler \u0130\u00e7in indexOf Metodunu Ke\u015ffetmek<\/h2>\n<p>JavaScript, web geli\u015ftirmenin temel ta\u015flar\u0131ndan biridir ve verilerle etkile\u015fim kurmak, onlar\u0131 manip\u00fcle etmek ve analiz etmek i\u00e7in zengin bir dizi yerle\u015fik metod sunar. Bu metodlar aras\u0131nda, belirli bir eleman\u0131n veya alt dizenin bir koleksiyon i\u00e7inde konumunu bulmak i\u00e7in s\u0131kl\u0131kla ba\u015fvurulan ve son derece kullan\u0131\u015fl\u0131 olan <code>indexOf<\/code> metodu \u00f6ne \u00e7\u0131kar. Hem dizeler (strings) hem de diziler (arrays) i\u00e7in farkl\u0131 prototipler \u00fczerinde bulunan <code>indexOf<\/code>, geli\u015ftiricilere g\u00fc\u00e7l\u00fc bir arama yetene\u011fi sunarak, veri i\u015fleme s\u00fcre\u00e7lerini b\u00fcy\u00fck \u00f6l\u00e7\u00fcde kolayla\u015ft\u0131r\u0131r.<\/p>\n<p>Bu makale, JavaScript&#8217;teki <code>indexOf<\/code> metodunun derinlemesine bir incelemesini sunacakt\u0131r. Dizeler ve diziler i\u00e7in nas\u0131l \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131, s\u00f6zdizimini, parametrelerini, d\u00f6n\u00fc\u015f de\u011ferlerini, pratik kullan\u0131m senaryolar\u0131n\u0131 ve dikkat edilmesi gereken \u00f6nemli noktalar\u0131 detayl\u0131 bir \u015fekilde ele alaca\u011f\u0131z. Ayr\u0131ca, bu metodun alternatifleriyle kar\u015f\u0131la\u015ft\u0131rmas\u0131n\u0131 yaparak, ne zaman <code>indexOf<\/code> kullanman\u0131z gerekti\u011fi ve ne zaman ba\u015fka bir metoda y\u00f6nelmeniz gerekti\u011fi konusunda size rehberlik edece\u011fiz. Amac\u0131m\u0131z, <code>indexOf<\/code> metodunu tam anlam\u0131yla anlaman\u0131z\u0131 ve projelerinizde etkin bir \u015fekilde kullanman\u0131z\u0131 sa\u011flamakt\u0131r.<\/p>\n<h3>indexOf Metodu Nedir ve Neden \u00d6nemlidir?<\/h3>\n<p><code>indexOf<\/code> metodu, temel olarak bir koleksiyon (dize veya dizi) i\u00e7inde belirli bir de\u011ferin ilk ge\u00e7ti\u011fi yerin indeksini (konumunu) d\u00f6nd\u00fcrmek i\u00e7in kullan\u0131l\u0131r. E\u011fer aranan de\u011fer bulunamazsa, metod <code>-1<\/code> de\u011ferini d\u00f6nd\u00fcr\u00fcr. Bu basit ancak g\u00fc\u00e7l\u00fc \u00f6zellik, bir\u00e7ok programlama g\u00f6revinde kritik bir rol oynar:<\/p>\n<ul>\n<li>Bir dizenin belirli bir alt dizeyi i\u00e7erip i\u00e7ermedi\u011fini kontrol etmek.<\/li>\n<li>Bir dizinin belirli bir eleman\u0131 i\u00e7erip i\u00e7ermedi\u011fini kontrol etmek.<\/li>\n<li>Bir dizenin i\u00e7indeki alt dizeleri ayr\u0131\u015ft\u0131rmak veya i\u015flemek.<\/li>\n<li>Kullan\u0131c\u0131 giri\u015flerini do\u011frulamak.<\/li>\n<li>Veri setlerinde belirli \u00f6\u011felerin varl\u0131\u011f\u0131n\u0131 h\u0131zl\u0131ca tespit etmek.<\/li>\n<\/ul>\n<p><code>indexOf<\/code> metodunun anla\u015f\u0131lmas\u0131, JavaScript&#8217;te veri manip\u00fclasyonu ve kontrol ak\u0131\u015f\u0131 mant\u0131\u011f\u0131 olu\u015fturma becerilerinizi \u00f6nemli \u00f6l\u00e7\u00fcde geli\u015ftirecektir. \u015eimdi, bu metodun dize ve dizi versiyonlar\u0131n\u0131 ayr\u0131 ayr\u0131 inceleyelim.<\/p>\n<h2>Dizeler \u0130\u00e7in indexOf Metodu: <code>String.prototype.indexOf()<\/code><\/h2>\n<p>JavaScript&#8217;teki dizeler, de\u011fi\u015fmez (immutable) karakter dizileridir. <code>String.prototype.indexOf()<\/code> metodu, bir dize i\u00e7inde belirli bir alt dizenin (substring) ilk ge\u00e7ti\u011fi yerin indeksini bulmak i\u00e7in tasarlanm\u0131\u015ft\u0131r. Bu metod, arama i\u015flemlerinde olduk\u00e7a yayg\u0131n bir \u015fekilde kullan\u0131l\u0131r.<\/p>\n<h3>S\u00f6zdizimi ve Parametreler<\/h3>\n<p><code>String.prototype.indexOf()<\/code> metodunun s\u00f6zdizimi a\u015fa\u011f\u0131daki gibidir:<\/p>\n<pre><code class=\"language-javascript\">string.indexOf(searchValue[, fromIndex])<\/code><\/pre>\n<ul>\n<li><b><code>searchValue<\/code> (Gerekli):<\/b> Aranacak alt dizeyi temsil eden bir dize.<\/li>\n<li><b><code>fromIndex<\/code> (\u0130ste\u011fe Ba\u011fl\u0131):<\/b> Araman\u0131n ba\u015flat\u0131laca\u011f\u0131 indeksi belirten bir say\u0131. Bu parametre belirtilmezse veya <code>undefined<\/code> ise, arama dizenin ba\u015f\u0131ndan (indeks 0) itibaren ba\u015flar. E\u011fer <code>fromIndex<\/code> de\u011feri dize uzunlu\u011fundan b\u00fcy\u00fck veya e\u015fitse, arama yap\u0131lmaz ve metod <code>-1<\/code> d\u00f6nd\u00fcr\u00fcr. E\u011fer <code>fromIndex<\/code> negatif bir de\u011ferse, arama yine 0 indeksinden ba\u015flar.<\/li>\n<\/ul>\n<h3>D\u00f6n\u00fc\u015f De\u011feri<\/h3>\n<p>Metod, <code>searchValue<\/code>&#8216;in <code>string<\/code> i\u00e7inde ilk ge\u00e7ti\u011fi yerin s\u0131f\u0131r tabanl\u0131 indeksini d\u00f6nd\u00fcr\u00fcr. E\u011fer <code>searchValue<\/code> bulunamazsa, <code>-1<\/code> d\u00f6nd\u00fcr\u00fcr.<\/p>\n<h3>Temel Kullan\u0131m \u00d6rnekleri<\/h3>\n<p>Basit bir \u00f6rnekle ba\u015flayal\u0131m:<\/p>\n<pre><code class=\"language-javascript\">const metin = \"JavaScript \u00f6\u011frenmek \u00e7ok e\u011flenceli.\";\n\n\/\/ '\u00f6\u011frenmek' alt dizisinin konumunu bulma\nlet indeks1 = metin.indexOf(\"\u00f6\u011frenmek\");\nconsole.log(indeks1); \/\/ \u00c7\u0131kt\u0131: 11 (J=0, a=1, v=2, a=3, S=4, c=5, r=6, i=7, p=8, bo\u015fluk=9, \u00f6=10, \u011f=11)\n\n\/\/ '\u00e7ok' alt dizisinin konumunu bulma\nlet indeks2 = metin.indexOf(\"\u00e7ok\");\nconsole.log(indeks2); \/\/ \u00c7\u0131kt\u0131: 20\n\n\/\/ Bulunmayan bir alt dize arama\nlet indeks3 = metin.indexOf(\"Python\");\nconsole.log(indeks3); \/\/ \u00c7\u0131kt\u0131: -1\n<\/code><\/pre>\n<h3>B\u00fcy\u00fck\/K\u00fc\u00e7\u00fck Harf Duyarl\u0131l\u0131\u011f\u0131<\/h3>\n<p><code>indexOf<\/code> metodu b\u00fcy\u00fck\/k\u00fc\u00e7\u00fck harfe duyarl\u0131d\u0131r. Bu, arad\u0131\u011f\u0131n\u0131z alt dizenin tam olarak e\u015fle\u015fmesi gerekti\u011fi anlam\u0131na gelir:<\/p>\n<pre><code class=\"language-javascript\">const dil = \"JavaScript\";\n\nlet indeks4 = dil.indexOf(\"script\");\nconsole.log(indeks4); \/\/ \u00c7\u0131kt\u0131: -1 (\u00e7\u00fcnk\u00fc 's' k\u00fc\u00e7\u00fck harf)\n\nlet indeks5 = dil.indexOf(\"Script\");\nconsole.log(indeks5); \/\/ \u00c7\u0131kt\u0131: 4 (J=0, a=1, v=2, a=3, S=4)\n<\/code><\/pre>\n<p>E\u011fer b\u00fcy\u00fck\/k\u00fc\u00e7\u00fck harf duyarl\u0131l\u0131\u011f\u0131 olmadan arama yapmak istiyorsan\u0131z, dizeyi \u00f6nce ya tamamen k\u00fc\u00e7\u00fck harfe (<code>toLowerCase()<\/code>) ya da tamamen b\u00fcy\u00fck harfe (<code>toUpperCase()<\/code>) d\u00f6n\u00fc\u015ft\u00fcrmeniz gerekir:<\/p>\n<pre><code class=\"language-javascript\">const dilBuyukKucuk = \"JavaScript\";\nconst aranan = \"script\";\n\nlet indeks6 = dilBuyukKucuk.toLowerCase().indexOf(aranan.toLowerCase());\nconsole.log(indeks6); \/\/ \u00c7\u0131kt\u0131: 4\n<\/code><\/pre>\n<h3><code>fromIndex<\/code> Parametresinin Kullan\u0131m\u0131<\/h3>\n<p><code>fromIndex<\/code> parametresi, aramaya dizenin belirli bir konumundan ba\u015flamak istedi\u011finizde \u00e7ok kullan\u0131\u015fl\u0131d\u0131r. Bu, ayn\u0131 alt dizenin birden fazla ge\u00e7ti\u011fi durumlarda veya dizenin belirli bir b\u00f6l\u00fcm\u00fcnde arama yapmak istedi\u011finizde i\u015fe yarar.<\/p>\n<pre><code class=\"language-javascript\">const cumle = \"Bu bir test c\u00fcmlesidir, bir test daha.\";\n\n\/\/ 'test' kelimesinin ilk ge\u00e7ti\u011fi yer\nlet ilkTest = cumle.indexOf(\"test\");\nconsole.log(ilkTest); \/\/ \u00c7\u0131kt\u0131: 7\n\n\/\/ \u0130lk 'test' kelimesinden sonraki 'test' kelimesini bulma\nlet ikinciTest = cumle.indexOf(\"test\", ilkTest + 1);\nconsole.log(ikinciTest); \/\/ \u00c7\u0131kt\u0131: 26\n\n\/\/ \u00c7ok b\u00fcy\u00fck bir fromIndex de\u011feri\nlet cokBuyukFromIndex = cumle.indexOf(\"test\", 100);\nconsole.log(cokBuyukFromIndex); \/\/ \u00c7\u0131kt\u0131: -1 (dize uzunlu\u011funu a\u015ft\u0131\u011f\u0131 i\u00e7in)\n\n\/\/ Negatif fromIndex de\u011feri\nlet negatifFromIndex = cumle.indexOf(\"test\", -5);\nconsole.log(negatifFromIndex); \/\/ \u00c7\u0131kt\u0131: 7 (negatif de\u011ferler 0 olarak kabul edilir)\n<\/code><\/pre>\n<p><code>fromIndex<\/code> de\u011feri, aramaya ba\u015flanacak karakterin indeksini belirtir. \u00d6rne\u011fin, <code>cumle.indexOf(\"test\", 8)<\/code> ifadesi, indeks 8&#8217;den itibaren aramaya ba\u015flar. Bu durumda, ilk &#8220;test&#8221; (indeks 7&#8217;de ba\u015flar) g\u00f6z ard\u0131 edilir ve ikinci &#8220;test&#8221; (indeks 26&#8217;da ba\u015flar) bulunur.<\/p>\n<h3><code>indexOf<\/code> ile Bir Dizenin Varl\u0131\u011f\u0131n\u0131 Kontrol Etme<\/h3>\n<p><code>indexOf<\/code> metodunun en yayg\u0131n kullan\u0131mlar\u0131ndan biri, bir dizenin belirli bir alt dizeyi i\u00e7erip i\u00e7ermedi\u011fini kontrol etmektir. E\u011fer <code>indexOf<\/code> <code>-1<\/code> d\u00f6nd\u00fcrmezse, alt dize mevcuttur.<\/p>\n<pre><code class=\"language-javascript\">const url = \"https:\/\/www.example.com\/path\/to\/resource\";\n\nif (url.indexOf(\"https:\/\/\") !== -1) {\n    console.log(\"URL g\u00fcvenli (HTTPS kullan\u0131yor).\");\n} else {\n    console.log(\"URL g\u00fcvenli de\u011fil (HTTPS kullanm\u0131yor).\");\n}\n\nconst dosyaAdi = \"belge.pdf\";\nif (dosyaAdi.indexOf(\".pdf\") !== -1) {\n    console.log(\"Bu bir PDF dosyas\u0131d\u0131r.\");\n} else {\n    console.log(\"Bu bir PDF dosyas\u0131 de\u011fildir.\");\n}\n<\/code><\/pre>\n<p>ES6 ile birlikte gelen <code>String.prototype.includes()<\/code> metodu, bu t\u00fcr varl\u0131k kontrol\u00fc i\u00e7in daha okunabilir bir alternatif sunar (<code>url.includes(\"https:\/\/\")<\/code>). Ancak <code>indexOf<\/code> hala ge\u00e7erli ve bir\u00e7ok durumda kullan\u0131labilir bir se\u00e7enektir, \u00f6zellikle indeks bilgisine de ihtiyac\u0131n\u0131z varsa.<\/p>\n<h3><code>lastIndexOf<\/code> ile \u0130li\u015fkisi<\/h3>\n<p><code>String.prototype.lastIndexOf()<\/code> metodu, <code>indexOf<\/code>&#8216;un tersi y\u00f6nde \u00e7al\u0131\u015f\u0131r. Bir alt dizenin son ge\u00e7ti\u011fi yerin indeksini d\u00f6nd\u00fcr\u00fcr. <code>fromIndex<\/code> parametresi burada da mevcuttur, ancak arama dizenin sonundan <code>fromIndex<\/code>&#8216;e do\u011fru geriye do\u011fru yap\u0131l\u0131r.<\/p>\n<pre><code class=\"language-javascript\">const kelime = \"elma armut elma muz\";\nlet ilkElma = kelime.indexOf(\"elma\"); \/\/ 0\nlet sonElma = kelime.lastIndexOf(\"elma\"); \/\/ 11\nconsole.log(<code>\u0130lk 'elma' indeksi: ${ilkElma}<\/code>);\nconsole.log(<code>Son 'elma' indeksi: ${sonElma}<\/code>);\n<\/code><\/pre>\n<h2>Diziler \u0130\u00e7in indexOf Metodu: <code>Array.prototype.indexOf()<\/code><\/h2>\n<p>JavaScript&#8217;teki diziler, farkl\u0131 veri t\u00fcrlerindeki elemanlar\u0131 depolayabilen s\u0131ral\u0131 koleksiyonlard\u0131r. <code>Array.prototype.indexOf()<\/code> metodu, bir dizide belirli bir eleman\u0131n ilk ge\u00e7ti\u011fi yerin indeksini bulmak i\u00e7in kullan\u0131l\u0131r. Dizelerdeki kar\u015f\u0131l\u0131\u011f\u0131na benzer \u015fekilde \u00e7al\u0131\u015f\u0131r, ancak elemanlar\u0131 kar\u015f\u0131la\u015ft\u0131rma \u015fekli biraz farkl\u0131d\u0131r.<\/p>\n<h3>S\u00f6zdizimi ve Parametreler<\/h3>\n<p><code>Array.prototype.indexOf()<\/code> metodunun s\u00f6zdizimi a\u015fa\u011f\u0131daki gibidir:<\/p>\n<pre><code class=\"language-javascript\">array.indexOf(searchElement[, fromIndex])<\/code><\/pre>\n<ul>\n<li><b><code>searchElement<\/code> (Gerekli):<\/b> Dizide aranacak eleman.<\/li>\n<li><b><code>fromIndex<\/code> (\u0130ste\u011fe Ba\u011fl\u0131):<\/b> Araman\u0131n ba\u015flat\u0131laca\u011f\u0131 indeksi belirten bir say\u0131. Bu parametre belirtilmezse veya <code>undefined<\/code> ise, arama dizinin ba\u015f\u0131ndan (indeks 0) itibaren ba\u015flar. E\u011fer <code>fromIndex<\/code> de\u011feri dizinin uzunlu\u011fundan b\u00fcy\u00fck veya e\u015fitse, arama yap\u0131lmaz ve metod <code>-1<\/code> d\u00f6nd\u00fcr\u00fcr. E\u011fer <code>fromIndex<\/code> negatif bir de\u011ferse, arama dizinin sonundan itibaren geriye do\u011fru <code>abs(fromIndex)<\/code> konumundan ba\u015flar, ancak arama yine ileriye do\u011fru yap\u0131l\u0131r. Yani, <code>array.length + fromIndex<\/code> olarak hesaplanan indeksten ba\u015flar. \u00d6rne\u011fin, <code>-1<\/code> son elemandan, <code>-2<\/code> sondan ikinci elemandan ba\u015flar. Ancak bu ba\u015flang\u0131\u00e7 noktas\u0131ndan itibaren arama yine 0&#8217;a do\u011fru de\u011fil, dizinin sonuna do\u011fru ilerler.<\/li>\n<\/ul>\n<h3>D\u00f6n\u00fc\u015f De\u011feri<\/h3>\n<p>Metod, <code>searchElement<\/code>&#8216;in <code>array<\/code> i\u00e7inde ilk ge\u00e7ti\u011fi yerin s\u0131f\u0131r tabanl\u0131 indeksini d\u00f6nd\u00fcr\u00fcr. E\u011fer <code>searchElement<\/code> bulunamazsa, <code>-1<\/code> d\u00f6nd\u00fcr\u00fcr.<\/p>\n<h3>Temel Kullan\u0131m \u00d6rnekleri<\/h3>\n<p>Basit bir dizi \u00f6rne\u011fiyle ba\u015flayal\u0131m:<\/p>\n<pre><code class=\"language-javascript\">const meyveler = [\"elma\", \"muz\", \"kiraz\", \"elma\", \"\u00e7ilek\"];\n\n\/\/ 'muz' eleman\u0131n\u0131n konumunu bulma\nlet indeksMuz = meyveler.indexOf(\"muz\");\nconsole.log(indeksMuz); \/\/ \u00c7\u0131kt\u0131: 1\n\n\/\/ 'elma' eleman\u0131n\u0131n ilk ge\u00e7ti\u011fi yeri bulma\nlet indeksElma = meyveler.indexOf(\"elma\");\nconsole.log(indeksElma); \/\/ \u00c7\u0131kt\u0131: 0\n\n\/\/ Bulunmayan bir eleman arama\nlet indeksArmut = meyveler.indexOf(\"armut\");\nconsole.log(indeksArmut); \/\/ \u00c7\u0131kt\u0131: -1\n<\/code><\/pre>\n<h3>Kesin E\u015fitlik (Strict Equality &#8211; <code>===<\/code>)<\/h3>\n<p><code>Array.prototype.indexOf()<\/code> metodu, elemanlar\u0131 kar\u015f\u0131la\u015ft\u0131rmak i\u00e7in kesin e\u015fitlik (<code>===<\/code>) operat\u00f6r\u00fcn\u00fc kullan\u0131r. Bu, hem de\u011ferin hem de veri t\u00fcr\u00fcn\u00fcn ayn\u0131 olmas\u0131 gerekti\u011fi anlam\u0131na gelir. Bu \u00f6zellik, \u00f6zellikle farkl\u0131 veri t\u00fcrleri veya nesnelerle \u00e7al\u0131\u015f\u0131rken \u00f6nemlidir.<\/p>\n<pre><code class=\"language-javascript\">const karisikDizi = [1, \"2\", 3, true, null, undefined, NaN, {a: 1}];\n\nconsole.log(karisikDizi.indexOf(1));      \/\/ \u00c7\u0131kt\u0131: 0\nconsole.log(karisikDizi.indexOf(\"1\"));    \/\/ \u00c7\u0131kt\u0131: -1 (\u00e7\u00fcnk\u00fc 1 bir say\u0131, \"1\" bir dize)\nconsole.log(karisikDizi.indexOf(3));      \/\/ \u00c7\u0131kt\u0131: 2\nconsole.log(karisikDizi.indexOf(\"3\"));    \/\/ \u00c7\u0131kt\u0131: -1\nconsole.log(karisikDizi.indexOf(true));   \/\/ \u00c7\u0131kt\u0131: 3\nconsole.log(karisikDizi.indexOf(null));   \/\/ \u00c7\u0131kt\u0131: 4\nconsole.log(karisikDizi.indexOf(undefined)); \/\/ \u00c7\u0131kt\u0131: 5\n\n\/\/ NaN ile \u00f6zel durum\nconsole.log(karisikDizi.indexOf(NaN));    \/\/ \u00c7\u0131kt\u0131: -1 (NaN === NaN her zaman false oldu\u011fu i\u00e7in)\n\/\/ NaN'i bulmak i\u00e7in Array.prototype.findIndex veya Number.isNaN kullan\u0131lmal\u0131d\u0131r.\nconsole.log(karisikDizi.findIndex(Number.isNaN)); \/\/ \u00c7\u0131kt\u0131: 6\n\n\/\/ Nesneler ve Referanslar\nconst obj1 = {a: 1};\nconst obj2 = {b: 2};\nconst nesneDizi = [obj1, obj2, {a: 1}];\n\nconsole.log(nesneDizi.indexOf(obj1)); \/\/ \u00c7\u0131kt\u0131: 0 (ayn\u0131 referans)\nconsole.log(nesneDizi.indexOf({a: 1})); \/\/ \u00c7\u0131kt\u0131: -1 (farkl\u0131 referans, yeni bir nesne)\n\/\/ Nesne de\u011ferlerini kar\u015f\u0131la\u015ft\u0131rmak i\u00e7in findIndex veya d\u00f6ng\u00fcler kullan\u0131lmal\u0131d\u0131r.\n<\/code><\/pre>\n<p>Bu \u00f6rnekler, <code>indexOf<\/code>&#8216;un nesneleri ve <code>NaN<\/code> gibi \u00f6zel de\u011ferleri nas\u0131l ele ald\u0131\u011f\u0131n\u0131 net bir \u015fekilde g\u00f6stermektedir. Nesneler i\u00e7in <code>indexOf<\/code>, referans e\u015fitli\u011fini kontrol eder, de\u011fer e\u015fitli\u011fini de\u011fil. Bu, ayn\u0131 i\u00e7eri\u011fe sahip olsalar bile farkl\u0131 nesne referanslar\u0131n\u0131n bulunamayaca\u011f\u0131 anlam\u0131na gelir. <code>NaN<\/code> i\u00e7in ise, <code>NaN === NaN<\/code> her zaman <code>false<\/code> d\u00f6nd\u00fcrd\u00fc\u011f\u00fc i\u00e7in <code>indexOf<\/code> onu bulamaz.<\/p>\n<h3><code>fromIndex<\/code> Parametresinin Kullan\u0131m\u0131 (Diziler \u0130\u00e7in)<\/h3>\n<p><code>fromIndex<\/code> parametresi, dizi aramalar\u0131nda da \u00f6nemlidir. Negatif de\u011ferlerin dizelerden biraz farkl\u0131 i\u015fledi\u011fine dikkat edin.<\/p>\n<pre><code class=\"language-javascript\">const sayilar = [10, 20, 30, 10, 40, 50];\n\n\/\/ 10'un ilk ge\u00e7ti\u011fi yer\nlet ilkOn = sayilar.indexOf(10);\nconsole.log(ilkOn); \/\/ \u00c7\u0131kt\u0131: 0\n\n\/\/ \u0130lk 10'dan sonraki 10'u bulma\nlet ikinciOn = sayilar.indexOf(10, ilkOn + 1);\nconsole.log(ikinciOn); \/\/ \u00c7\u0131kt\u0131: 3\n\n\/\/ Negatif fromIndex kullan\u0131m\u0131: sondan 2. elemandan (yani 40'tan) itibaren ara\nlet fromNegativeIndex = sayilar.indexOf(40, -2);\nconsole.log(fromNegativeIndex); \/\/ \u00c7\u0131kt\u0131: 4 (indeks 40'tan itibaren 40'\u0131 buldu)\n\n\/\/ Negatif fromIndex kullan\u0131m\u0131: sondan 4. elemandan (yani 30'dan) itibaren 10'u ara\nlet fromNegativeIndex2 = sayilar.indexOf(10, -4); \/\/ -4 -> sayilar.length + (-4) = 6 - 4 = 2. indexten ba\u015fla\nconsole.log(fromNegativeIndex2); \/\/ \u00c7\u0131kt\u0131: 3 (indeks 2'den itibaren 10'u buldu)\n\n\/\/ fromIndex dizinin uzunlu\u011fundan b\u00fcy\u00fckse\nlet buyukFromIndex = sayilar.indexOf(10, 10);\nconsole.log(buyukFromIndex); \/\/ \u00c7\u0131kt\u0131: -1\n<\/code><\/pre>\n<p>Negatif <code>fromIndex<\/code> de\u011feri, dizinin sonundan geriye do\u011fru bir ofset olarak yorumlan\u0131r. \u00d6rne\u011fin, <code>fromIndex<\/code> <code>-1<\/code> ise, arama dizinin son eleman\u0131ndan ba\u015flar (ancak yine ileri do\u011fru ilerler). <code>fromIndex<\/code> <code>-2<\/code> ise, sondan ikinci elemandan ba\u015flar. E\u011fer hesaplanan ba\u015flang\u0131\u00e7 indeksi 0&#8217;dan k\u00fc\u00e7\u00fckse, arama yine 0&#8217;dan ba\u015flar.<\/p>\n<h3><code>indexOf<\/code> ile Bir Eleman\u0131n Varl\u0131\u011f\u0131n\u0131 Kontrol Etme (Diziler \u0130\u00e7in)<\/h3>\n<p>Dizilerde de, bir eleman\u0131n varl\u0131\u011f\u0131n\u0131 kontrol etmek i\u00e7in <code>indexOf<\/code> s\u0131kl\u0131kla kullan\u0131l\u0131r:<\/p>\n<pre><code class=\"language-javascript\">const kullanicilar = [\"Alice\", \"Bob\", \"Charlie\"];\n\nfunction kullaniciVarMi(ad) {\n    if (kullanicilar.indexOf(ad) !== -1) {\n        console.log(<code>${ad} listede mevcut.<\/code>);\n        return true;\n    } else {\n        console.log(<code>${ad} listede mevcut de\u011fil.<\/code>);\n        return false;\n    }\n}\n\nkullaniciVarMi(\"Alice\");   \/\/ \u00c7\u0131kt\u0131: Alice listede mevcut.\nkullaniciVarMi(\"David\");   \/\/ \u00c7\u0131kt\u0131: David listede mevcut de\u011fil.\n<\/code><\/pre>\n<p>Yine, ES6 ile gelen <code>Array.prototype.includes()<\/code> metodu, bu senaryo i\u00e7in daha modern ve okunabilir bir alternatif sunar (<code>kullanicilar.includes(\"Alice\")<\/code>).<\/p>\n<h3><code>lastIndexOf<\/code> ile \u0130li\u015fkisi (Diziler \u0130\u00e7in)<\/h3>\n<p>Diziler i\u00e7in de <code>Array.prototype.lastIndexOf()<\/code> metodu mevcuttur ve <code>searchElement<\/code>&#8216;in dizideki son ge\u00e7ti\u011fi yerin indeksini d\u00f6nd\u00fcr\u00fcr. Aramay\u0131 sondan ba\u015fa do\u011fru yapar.<\/p>\n<pre><code class=\"language-javascript\">const harfler = ['a', 'b', 'c', 'a', 'd'];\nlet ilkA = harfler.indexOf('a'); \/\/ 0\nlet sonA = harfler.lastIndexOf('a'); \/\/ 3\nconsole.log(<code>\u0130lk 'a' indeksi: ${ilkA}<\/code>);\nconsole.log(<code>Son 'a' indeksi: ${sonA}<\/code>);\n<\/code><\/pre>\n<h2>indexOf Metodunun Ortak Y\u00f6nleri ve Farkl\u0131l\u0131klar\u0131<\/h2>\n<p>Hem dizeler hem de diziler i\u00e7in <code>indexOf<\/code> metodu, bir eleman\u0131n veya alt dizenin konumunu bulmak i\u00e7in benzer bir prensiple \u00e7al\u0131\u015fsa da, baz\u0131 \u00f6nemli ortak y\u00f6nleri ve farkl\u0131l\u0131klar\u0131 vard\u0131r:<\/p>\n<h3>Ortak Y\u00f6nler:<\/h3>\n<ul>\n<li><b>D\u00f6n\u00fc\u015f De\u011feri:<\/b> Her iki metod da aranan de\u011fer bulunursa s\u0131f\u0131r tabanl\u0131 indeksi, bulunamazsa <code>-1<\/code> d\u00f6nd\u00fcr\u00fcr.<\/li>\n<li><b><code>fromIndex<\/code> Parametresi:<\/b> Her ikisi de aramay\u0131 belirli bir indeksten ba\u015flatmak i\u00e7in iste\u011fe ba\u011fl\u0131 <code>fromIndex<\/code> parametresini kabul eder.<\/li>\n<li><b>\u0130lk Ge\u00e7i\u015f:<\/b> Her ikisi de aranan de\u011ferin <em>ilk<\/em> ge\u00e7ti\u011fi yerin indeksini d\u00f6nd\u00fcr\u00fcr. Birden fazla e\u015fle\u015fme olsa bile, sadece ilkini rapor ederler.<\/li>\n<li><b>Temel Arama \u0130\u015flevi:<\/b> Her ikisi de bir koleksiyon i\u00e7inde belirli bir de\u011ferin varl\u0131\u011f\u0131n\u0131 ve konumunu h\u0131zl\u0131ca tespit etmek i\u00e7in kullan\u0131l\u0131r.<\/li>\n<\/ul>\n<h3>Farkl\u0131l\u0131klar:<\/h3>\n<ul>\n<li><b>Aranan De\u011ferin T\u00fcr\u00fc:<\/b>\n<ul>\n<li><code>String.prototype.indexOf()<\/code>: Bir alt dize (<code>searchValue<\/code>) arar.<\/li>\n<li><code>Array.prototype.indexOf()<\/code>: Tek bir eleman (<code>searchElement<\/code>) arar.<\/li>\n<\/ul>\n<\/li>\n<li><b>Kar\u015f\u0131la\u015ft\u0131rma Mekanizmas\u0131:<\/b>\n<ul>\n<li><code>String.prototype.indexOf()<\/code>: Karakter dizilerini birebir kar\u015f\u0131la\u015ft\u0131r\u0131r ve b\u00fcy\u00fck\/k\u00fc\u00e7\u00fck harfe duyarl\u0131d\u0131r.<\/li>\n<li><code>Array.prototype.indexOf()<\/code>: Elemanlar\u0131 kesin e\u015fitlik (<code>===<\/code>) operat\u00f6r\u00fc kullanarak kar\u015f\u0131la\u015ft\u0131r\u0131r. Bu, nesneler i\u00e7in referans e\u015fitli\u011fi anlam\u0131na gelir ve <code>NaN<\/code> de\u011ferlerini bulamaz.<\/li>\n<\/ul>\n<\/li>\n<li><b><code>fromIndex<\/code> Negatif De\u011ferlerinin \u0130\u015flenmesi:<\/b>\n<ul>\n<li><code>String.prototype.indexOf()<\/code>: Negatif <code>fromIndex<\/code> de\u011ferleri 0 olarak kabul edilir ve arama dize ba\u015f\u0131ndan ba\u015flar.<\/li>\n<li><code>Array.prototype.indexOf()<\/code>: Negatif <code>fromIndex<\/code> de\u011ferleri dizinin sonundan bir ofset olarak hesaplan\u0131r (<code>array.length + fromIndex<\/code>) ve arama bu noktadan ileri do\u011fru ba\u015flar.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2>indexOf Alternatifleri ve Ne Zaman Kullan\u0131lmal\u0131<\/h2>\n<p><code>indexOf<\/code> metodu g\u00fc\u00e7l\u00fc olsa da, JavaScript&#8217;te benzer i\u015flevleri yerine getiren veya belirli senaryolar i\u00e7in daha uygun olan ba\u015fka metodlar da bulunmaktad\u0131r. Bu alternatifleri bilmek, kodunuzu daha okunabilir, verimli ve amaca uygun hale getirmenize yard\u0131mc\u0131 olabilir.<\/p>\n<h3>Dizeler \u0130\u00e7in Alternatifler:<\/h3>\n<ul>\n<li><b><code>String.prototype.includes()<\/code> (ES6+):<\/b>\n<p>Sadece bir alt dizenin varl\u0131\u011f\u0131n\u0131 kontrol etmek istedi\u011finizde en okunabilir alternatiftir. <code>true<\/code> veya <code>false<\/code> d\u00f6nd\u00fcr\u00fcr, indeks bilgisi sa\u011flamaz.<\/p>\n<pre><code class=\"language-javascript\">const metin = \"Merhaba d\u00fcnya\";\nconsole.log(metin.includes(\"d\u00fcnya\")); \/\/ true\nconsole.log(metin.includes(\"javascript\")); \/\/ false\n<\/code><\/pre>\n<p><b>Ne Zaman Kullan\u0131lmal\u0131:<\/b> Sadece bir alt dizenin olup olmad\u0131\u011f\u0131n\u0131 bilmek istedi\u011finizde, indeksine ihtiyac\u0131n\u0131z yoksa.<\/p>\n<\/li>\n<li><b><code>String.prototype.search()<\/code>:<\/b>\n<p>D\u00fczenli ifadeler (regular expressions) kullanarak arama yapman\u0131za olanak tan\u0131r. <code>indexOf<\/code> gibi, ilk e\u015fle\u015fmenin indeksini d\u00f6nd\u00fcr\u00fcr veya bulunamazsa <code>-1<\/code> d\u00f6nd\u00fcr\u00fcr. B\u00fcy\u00fck\/k\u00fc\u00e7\u00fck harf duyarl\u0131l\u0131\u011f\u0131 gibi ayarlar\u0131 d\u00fczenli ifade bayraklar\u0131yla kontrol edebilirsiniz.<\/p>\n<pre><code class=\"language-javascript\">const metin = \"JavaScript \u00f6\u011frenmek\";\nconsole.log(metin.search(\/script\/i)); \/\/ 4 (i bayra\u011f\u0131 b\u00fcy\u00fck\/k\u00fc\u00e7\u00fck harf duyarl\u0131l\u0131\u011f\u0131n\u0131 kapat\u0131r)\nconsole.log(metin.search(\/python\/)); \/\/ -1\n<\/code><\/pre>\n<p><b>Ne Zaman Kullan\u0131lmal\u0131:<\/b> Karma\u015f\u0131k desen e\u015fle\u015ftirme veya b\u00fcy\u00fck\/k\u00fc\u00e7\u00fck harf duyarl\u0131l\u0131\u011f\u0131n\u0131 d\u00fczenli ifadelerle kontrol etmeniz gerekti\u011finde.<\/p>\n<\/li>\n<li><b><code>String.prototype.startsWith()<\/code> \/ <code>String.prototype.endsWith()<\/code> (ES6+):<\/b>\n<p>Bir dizenin belirli bir alt dizeyle ba\u015flay\u0131p ba\u015flamad\u0131\u011f\u0131n\u0131 veya bitip bitmedi\u011fini kontrol eder. <code>true<\/code> veya <code>false<\/code> d\u00f6nd\u00fcr\u00fcr.<\/p>\n<pre><code class=\"language-javascript\">const dosya = \"rapor.pdf\";\nconsole.log(dosya.endsWith(\".pdf\")); \/\/ true\nconsole.log(dosya.startsWith(\"rapor\")); \/\/ true\n<\/code><\/pre>\n<p><b>Ne Zaman Kullan\u0131lmal\u0131:<\/b> Dizenin ba\u015flang\u0131c\u0131n\u0131 veya sonunu kontrol etmeniz gerekti\u011finde, <code>indexOf<\/code>&#8216;tan daha spesifik ve okunabilir bir \u00e7\u00f6z\u00fcmd\u00fcr.<\/p>\n<\/li>\n<\/ul>\n<h3>Diziler \u0130\u00e7in Alternatifler:<\/h3>\n<ul>\n<li><b><code>Array.prototype.includes()<\/code> (ES6+):<\/b>\n<p>Bir dizinin belirli bir eleman\u0131 i\u00e7erip i\u00e7ermedi\u011fini kontrol eder. <code>true<\/code> veya <code>false<\/code> d\u00f6nd\u00fcr\u00fcr. <code>indexOf<\/code>&#8216;tan farkl\u0131 olarak, <code>NaN<\/code> de\u011ferlerini de do\u011fru bir \u015fekilde bulabilir.<\/p>\n<pre><code class=\"language-javascript\">const sayilar = [1, 2, 3, NaN];\nconsole.log(sayilar.includes(2)); \/\/ true\nconsole.log(sayilar.includes(5)); \/\/ false\nconsole.log(sayilar.includes(NaN)); \/\/ true (indexOf'tan farkl\u0131 olarak)\n<\/code><\/pre>\n<p><b>Ne Zaman Kullan\u0131lmal\u0131:<\/b> Sadece bir eleman\u0131n olup olmad\u0131\u011f\u0131n\u0131 bilmek istedi\u011finizde, indeksine ihtiyac\u0131n\u0131z yoksa veya <code>NaN<\/code> gibi \u00f6zel de\u011ferleri araman\u0131z gerekiyorsa.<\/p>\n<\/li>\n<li><b><code>Array.prototype.find()<\/code> (ES6+):<\/b>\n<p>Dizideki her eleman i\u00e7in bir test fonksiyonu \u00e7al\u0131\u015ft\u0131r\u0131r ve bu fonksiyonu <code>true<\/code> d\u00f6nd\u00fcren ilk eleman\u0131 d\u00f6nd\u00fcr\u00fcr. Hi\u00e7bir eleman testi ge\u00e7mezse <code>undefined<\/code> d\u00f6nd\u00fcr\u00fcr. Bu metod, <code>indexOf<\/code>&#8216;un kesin e\u015fitlik s\u0131n\u0131rlamalar\u0131n\u0131n \u00fcstesinden gelmek i\u00e7in idealdir, \u00f6zellikle nesnelerle \u00e7al\u0131\u015f\u0131rken.<\/p>\n<pre><code class=\"language-javascript\">const users = [\n    { id: 1, name: \"Alice\" },\n    { id: 2, name: \"Bob\" },\n    { id: 3, name: \"Charlie\" }\n];\nconst foundUser = users.find(user => user.id === 2);\nconsole.log(foundUser); \/\/ { id: 2, name: \"Bob\" }\nconst notFoundUser = users.find(user => user.id === 99);\nconsole.log(notFoundUser); \/\/ undefined\n<\/code><\/pre>\n<p><b>Ne Zaman Kullan\u0131lmal\u0131:<\/b> Karma\u015f\u0131k ko\u015fullara g\u00f6re bir eleman arad\u0131\u011f\u0131n\u0131zda (\u00f6rne\u011fin, nesne \u00f6zelliklerini kar\u015f\u0131la\u015ft\u0131rarak) ve eleman\u0131n kendisine ihtiyac\u0131n\u0131z oldu\u011funda.<\/p>\n<\/li>\n<li><b><code>Array.prototype.findIndex()<\/code> (ES6+):<\/b>\n<p><code>find()<\/code> metoduna benzer \u015fekilde \u00e7al\u0131\u015f\u0131r, ancak e\u015fle\u015fen eleman\u0131n kendisini de\u011fil, indeksini d\u00f6nd\u00fcr\u00fcr. Hi\u00e7bir eleman testi ge\u00e7mezse <code>-1<\/code> d\u00f6nd\u00fcr\u00fcr.<\/p>\n<pre><code class=\"language-javascript\">const products = [\n    { id: 101, name: \"Laptop\" },\n    { id: 102, name: \"Mouse\" },\n    { id: 103, name: \"Keyboard\" }\n];\nconst mouseIndex = products.findIndex(product => product.name === \"Mouse\");\nconsole.log(mouseIndex); \/\/ 1\nconst tabletIndex = products.findIndex(product => product.name === \"Tablet\");\nconsole.log(tabletIndex); \/\/ -1\n<\/code><\/pre>\n<p><b>Ne Zaman Kullan\u0131lmal\u0131:<\/b> Karma\u015f\u0131k ko\u015fullara g\u00f6re bir eleman\u0131n indeksini arad\u0131\u011f\u0131n\u0131zda (\u00f6rne\u011fin, nesne \u00f6zelliklerini kar\u015f\u0131la\u015ft\u0131rarak).<\/p>\n<\/li>\n<\/ul>\n<h3><code>indexOf<\/code> Ne Zaman Tercih Edilmeli?<\/h3>\n<p>Yukar\u0131daki alternatiflere ra\u011fmen, <code>indexOf<\/code> metodunun hala kendine \u00f6zg\u00fc kullan\u0131m alanlar\u0131 vard\u0131r:<\/p>\n<ul>\n<li><b>Basit Varl\u0131k Kontrol\u00fc ve \u0130ndeks \u0130htiyac\u0131:<\/b> Bir alt dize veya eleman\u0131n varl\u0131\u011f\u0131n\u0131 kontrol etmekle birlikte, ayn\u0131 zamanda onun konum bilgisini de (indeksini) bilmeniz gerekiyorsa.<\/li>\n<li><b>Eski Taray\u0131c\u0131 Deste\u011fi:<\/b> <code>includes()<\/code>, <code>find()<\/code>, <code>findIndex()<\/code> gibi ES6+ metodlar\u0131 eski taray\u0131c\u0131larda do\u011frudan desteklenmeyebilir. E\u011fer eski taray\u0131c\u0131 deste\u011fi kritikse ve polyfill kullanmak istemiyorsan\u0131z, <code>indexOf<\/code> daha g\u00fcvenli bir se\u00e7enektir.<\/li>\n<li><b>Sadece \u0130lkel De\u011ferleri Arama (Diziler \u0130\u00e7in):<\/b> Dizilerde say\u0131, dize, boolean gibi ilkel de\u011ferleri ar\u0131yorsan\u0131z ve kesin e\u015fitlik sizin i\u00e7in uygunsa, <code>indexOf<\/code> h\u0131zl\u0131 ve basit bir \u00e7\u00f6z\u00fcmd\u00fcr.<\/li>\n<\/ul>\n<h2>Performans Hususlar\u0131<\/h2>\n<p>Genel olarak, <code>indexOf<\/code> metodunun performans\u0131, aranan koleksiyonun (dize veya dizi) boyutuyla orant\u0131l\u0131d\u0131r. B\u00fcy\u00fck dizeler veya diziler \u00fczerinde s\u0131k s\u0131k <code>indexOf<\/code> \u00e7a\u011fr\u0131s\u0131 yapmak, \u00f6zellikle d\u00f6ng\u00fcler i\u00e7inde yap\u0131l\u0131yorsa, performans sorunlar\u0131na yol a\u00e7abilir. Ancak \u00e7o\u011fu tipik web uygulamas\u0131 senaryosu i\u00e7in bu bir sorun te\u015fkil etmez.<\/p>\n<p>Modern JavaScript motorlar\u0131, bu t\u00fcr metodlar\u0131 olduk\u00e7a optimize etmi\u015ftir. <code>includes()<\/code> gibi daha yeni metodlar genellikle <code>indexOf() !== -1<\/code> kontrol\u00fcnden daha az performans fark\u0131 g\u00f6sterir ve okunabilirlik a\u00e7\u0131s\u0131ndan tercih edilebilir. D\u00fczenli ifadelerle yap\u0131lan aramalar (<code>search()<\/code>) ise desenin karma\u015f\u0131kl\u0131\u011f\u0131na ba\u011fl\u0131 olarak daha pahal\u0131 olabilir.<\/p>\n<p>\u00d6zetle, performans endi\u015feleri genellikle \u00e7ok b\u00fcy\u00fck veri setleriyle veya \u00e7ok s\u0131k tekrarlanan i\u015flemlerle ortaya \u00e7\u0131kar. \u00c7o\u011fu durumda, kodun okunabilirli\u011fi ve do\u011frulu\u011fu, k\u00fc\u00e7\u00fck performans farkl\u0131l\u0131klar\u0131ndan daha \u00f6nemlidir.<\/p>\n<h2>Sonu\u00e7<\/h2>\n<p>JavaScript&#8217;teki <code>indexOf<\/code> metodu, hem dizeler hem de diziler i\u00e7in veri manip\u00fclasyonunda temel ve \u00e7ok y\u00f6nl\u00fc bir ara\u00e7t\u0131r. Bir alt dizenin veya eleman\u0131n bir koleksiyon i\u00e7indeki ilk ge\u00e7ti\u011fi yeri bulma yetene\u011fi, geli\u015ftiricilere \u00e7e\u015fitli senaryolarda g\u00fc\u00e7l\u00fc bir kontrol sa\u011flar. Dizeler i\u00e7in b\u00fcy\u00fck\/k\u00fc\u00e7\u00fck harf duyarl\u0131l\u0131\u011f\u0131 ve alt dize aramas\u0131 yaparken, diziler i\u00e7in kesin e\u015fitlik kontrol\u00fc ve nesne referanslar\u0131na duyarl\u0131l\u0131k gibi \u00f6nemli farkl\u0131l\u0131klar\u0131 anlamak, bu metodun do\u011fru ve etkili kullan\u0131m\u0131n\u0131n anahtar\u0131d\u0131r.<\/p>\n<p>ES6 ve sonraki s\u00fcr\u00fcmlerle birlikte gelen <code>includes()<\/code>, <code>find()<\/code>, <code>findIndex()<\/code>, <code>startsWith()<\/code> ve <code>endsWith()<\/code> gibi alternatif metodlar, belirli kullan\u0131m durumlar\u0131 i\u00e7in daha okunabilir ve amaca uygun \u00e7\u00f6z\u00fcmler sunar. Ancak <code>indexOf<\/code>, \u00f6zellikle indeks bilgisine ihtiyac\u0131n\u0131z oldu\u011funda veya eski taray\u0131c\u0131 uyumlulu\u011fu gerektiren projelerde hala vazge\u00e7ilmez bir yere sahiptir.<\/p>\n<p>Bu makalede ele al\u0131nan detaylar ve \u00f6rnekler sayesinde, <code>indexOf<\/code> metodunun t\u00fcm inceliklerini kavram\u0131\u015f ve onu JavaScript projelerinizde bilin\u00e7li bir \u015fekilde kullanma becerisi kazanm\u0131\u015f olman\u0131z\u0131 umuyoruz. Veri arama ve i\u015fleme yeteneklerinizi geli\u015ftirerek, daha sa\u011flam ve etkili JavaScript uygulamalar\u0131 olu\u015fturabilirsiniz.<\/p>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"JavaScript&#8217;te Dizeler ve Diziler \u0130\u00e7in indexOf Metodunu Ke\u015ffetmek\nJavaScript, web geli\u015ftirmenin temel ta\u015flar\u0131ndan biridir ve verilerle etkile\u015fi","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-30767","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&#039;te Dizeler ve Diziler \u0130\u00e7in indexOf Metodunu Ke\u015ffetmek - 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\/javascriptte-dizeler-ve-diziler-icin-indexof-metodunu-kesfetmek\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"JavaScript&#039;te Dizeler ve Diziler \u0130\u00e7in indexOf Metodunu Ke\u015ffetmek\" \/>\n<meta property=\"og:description\" content=\"JavaScript&#039;te Dizeler ve Diziler \u0130\u00e7in indexOf Metodunu Ke\u015ffetmek JavaScript, web geli\u015ftirmenin temel ta\u015flar\u0131ndan biridir ve verilerle etkile\u015fi\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/javascriptte-dizeler-ve-diziler-icin-indexof-metodunu-kesfetmek\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-01T18:41:51+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=\"17 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/javascriptte-dizeler-ve-diziler-icin-indexof-metodunu-kesfetmek\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/javascriptte-dizeler-ve-diziler-icin-indexof-metodunu-kesfetmek\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"JavaScript&#8217;te Dizeler ve Diziler \u0130\u00e7in indexOf Metodunu Ke\u015ffetmek\",\"datePublished\":\"2025-10-01T18:41:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/javascriptte-dizeler-ve-diziler-icin-indexof-metodunu-kesfetmek\/\"},\"wordCount\":2391,\"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\/javascriptte-dizeler-ve-diziler-icin-indexof-metodunu-kesfetmek\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/javascriptte-dizeler-ve-diziler-icin-indexof-metodunu-kesfetmek\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/javascriptte-dizeler-ve-diziler-icin-indexof-metodunu-kesfetmek\/\",\"name\":\"JavaScript'te Dizeler ve Diziler \u0130\u00e7in indexOf Metodunu Ke\u015ffetmek - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-10-01T18:41:51+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/javascriptte-dizeler-ve-diziler-icin-indexof-metodunu-kesfetmek\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/javascriptte-dizeler-ve-diziler-icin-indexof-metodunu-kesfetmek\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/javascriptte-dizeler-ve-diziler-icin-indexof-metodunu-kesfetmek\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"JavaScript&#8217;te Dizeler ve Diziler \u0130\u00e7in indexOf Metodunu Ke\u015ffetmek\"}]},{\"@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'te Dizeler ve Diziler \u0130\u00e7in indexOf Metodunu Ke\u015ffetmek - 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\/javascriptte-dizeler-ve-diziler-icin-indexof-metodunu-kesfetmek\/","og_locale":"tr_TR","og_type":"article","og_title":"JavaScript'te Dizeler ve Diziler \u0130\u00e7in indexOf Metodunu Ke\u015ffetmek","og_description":"JavaScript'te Dizeler ve Diziler \u0130\u00e7in indexOf Metodunu Ke\u015ffetmek JavaScript, web geli\u015ftirmenin temel ta\u015flar\u0131ndan biridir ve verilerle etkile\u015fi","og_url":"https:\/\/fatihsoysal.com\/blog\/javascriptte-dizeler-ve-diziler-icin-indexof-metodunu-kesfetmek\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-10-01T18:41:51+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"17 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/javascriptte-dizeler-ve-diziler-icin-indexof-metodunu-kesfetmek\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/javascriptte-dizeler-ve-diziler-icin-indexof-metodunu-kesfetmek\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"JavaScript&#8217;te Dizeler ve Diziler \u0130\u00e7in indexOf Metodunu Ke\u015ffetmek","datePublished":"2025-10-01T18:41:51+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/javascriptte-dizeler-ve-diziler-icin-indexof-metodunu-kesfetmek\/"},"wordCount":2391,"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\/javascriptte-dizeler-ve-diziler-icin-indexof-metodunu-kesfetmek\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/javascriptte-dizeler-ve-diziler-icin-indexof-metodunu-kesfetmek\/","url":"https:\/\/fatihsoysal.com\/blog\/javascriptte-dizeler-ve-diziler-icin-indexof-metodunu-kesfetmek\/","name":"JavaScript'te Dizeler ve Diziler \u0130\u00e7in indexOf Metodunu Ke\u015ffetmek - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-10-01T18:41:51+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/javascriptte-dizeler-ve-diziler-icin-indexof-metodunu-kesfetmek\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/javascriptte-dizeler-ve-diziler-icin-indexof-metodunu-kesfetmek\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/javascriptte-dizeler-ve-diziler-icin-indexof-metodunu-kesfetmek\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"JavaScript&#8217;te Dizeler ve Diziler \u0130\u00e7in indexOf Metodunu Ke\u015ffetmek"}]},{"@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\/30767","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=30767"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/30767\/revisions"}],"predecessor-version":[{"id":30768,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/30767\/revisions\/30768"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=30767"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=30767"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=30767"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}