{"id":41695,"date":"2026-05-10T21:04:03","date_gmt":"2026-05-10T18:04:03","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/javascriptte-ilkel-ve-referans-degerler-derinlemesine-bir-bakis\/"},"modified":"2026-05-10T21:04:03","modified_gmt":"2026-05-10T18:04:03","slug":"javascriptte-ilkel-ve-referans-degerler-derinlemesine-bir-bakis","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/javascriptte-ilkel-ve-referans-degerler-derinlemesine-bir-bakis\/","title":{"rendered":"JavaScript&#8217;te \u0130lkel ve Referans De\u011ferler: Derinlemesine Bir Bak\u0131\u015f"},"content":{"rendered":"<p><body><\/p>\n<h2>JavaScript&#8217;te \u0130lkel ve Referans De\u011ferler: Derinlemesine Bir Bak\u0131\u015f<\/h2>\n<p>JavaScript ile uygulama geli\u015ftirirken, de\u011fi\u015fkenlerin nas\u0131l davrand\u0131\u011f\u0131 veya verilerin nas\u0131l kopyaland\u0131\u011f\u0131 konusunda kafa kar\u0131\u015f\u0131kl\u0131\u011f\u0131 ya\u015fad\u0131n\u0131z m\u0131? Belki de bir nesneyi kopyalad\u0131\u011f\u0131n\u0131z\u0131 d\u00fc\u015f\u00fcnd\u00fc\u011f\u00fcn\u00fcz halde, orijinal nesnede beklenmedik de\u011fi\u015fiklikler fark ettiniz. Bu durum, JavaScript&#8217;in de\u011ferleri ilkel (primitive) ve referans (reference) olmak \u00fczere iki farkl\u0131 \u015fekilde ele almas\u0131ndan kaynaklan\u0131r. Bu makale, bu temel ayr\u0131m\u0131 t\u00fcm detaylar\u0131yla a\u00e7\u0131klayarak, kodunuzda daha bilin\u00e7li kararlar alman\u0131z\u0131 sa\u011flayacak ve bu t\u00fcr &#8220;s\u00fcrpriz&#8221; davran\u0131\u015flar\u0131n \u00f6n\u00fcne ge\u00e7menize yard\u0131mc\u0131 olacakt\u0131r.<\/p>\n<h2>JavaScript De\u011fer Tiplerinin Temel Ayr\u0131m\u0131 Nedir?<\/h2>\n<p>JavaScript&#8217;te, bir de\u011fi\u015fkene atanan de\u011ferin bellekte nas\u0131l sakland\u0131\u011f\u0131 ve bu de\u011ferin ba\u015fka bir de\u011fi\u015fkene atand\u0131\u011f\u0131nda veya bir fonksiyona ge\u00e7irildi\u011finde nas\u0131l davrand\u0131\u011f\u0131, onun ilkel mi yoksa referans bir de\u011fer mi oldu\u011funa ba\u011fl\u0131d\u0131r. Bu ayr\u0131m, dilin temel yap\u0131 ta\u015flar\u0131ndan biridir ve modern web uygulamalar\u0131 geli\u015ftirirken veri y\u00f6netimi ve hata ay\u0131klama a\u00e7\u0131s\u0131ndan kritik \u00f6neme sahiptir. \u0130lkel de\u011ferler, do\u011frudan de\u011ferlerini i\u00e7eren basit veri t\u00fcrleridir. Referans de\u011ferler ise, bellekteki bir konumu i\u015faret eden daha karma\u015f\u0131k veri yap\u0131lar\u0131d\u0131r.<\/p>\n<p>\u0130lkel (Primitive) de\u011ferler, do\u011frudan de\u011ferin kendisini temsil eder ve de\u011fi\u015ftirilemez (immutable) \u00f6zelliktedir. Yani, bir ilkel de\u011feri de\u011fi\u015ftirdi\u011finizde, asl\u0131nda yeni bir de\u011fer olu\u015fturursunuz. JavaScript&#8217;te yedi farkl\u0131 ilkel veri t\u00fcr\u00fc bulunur:<\/p>\n<ul>\n<li><code>String<\/code> (Dize): Metin verilerini temsil eder. \u00d6rne\u011fin, <code>\"Merhaba D\u00fcnya\"<\/code>.<\/li>\n<li><code>Number<\/code> (Say\u0131): Hem tam say\u0131lar\u0131 hem de ondal\u0131kl\u0131 say\u0131lar\u0131 kapsar. \u00d6rne\u011fin, <code>42<\/code>, <code>3.14<\/code>.<\/li>\n<li><code>Boolean<\/code> (Mant\u0131ksal): Sadece iki de\u011feri vard\u0131r: <code>true<\/code> (do\u011fru) veya <code>false<\/code> (yanl\u0131\u015f).<\/li>\n<li><code>Null<\/code>: Bilin\u00e7li olarak &#8220;de\u011fer yok&#8221; anlam\u0131na gelir. Tek bir de\u011feri olan \u00f6zel bir ilkel t\u00fcrd\u00fcr.<\/li>\n<li><code>Undefined<\/code>: Bir de\u011fi\u015fkene de\u011fer atanmad\u0131\u011f\u0131nda veya bir \u00f6zellik tan\u0131mlanmad\u0131\u011f\u0131nda otomatik olarak atanan de\u011ferdir.<\/li>\n<li><code>Symbol<\/code> (Sembol): ES6 ile tan\u0131t\u0131lan, benzersiz ve anonim \u00f6zellik anahtarlar\u0131 olu\u015fturmak i\u00e7in kullan\u0131lan bir veri t\u00fcr\u00fcd\u00fcr.<\/li>\n<li><code>BigInt<\/code> (B\u00fcy\u00fck Tam Say\u0131): Standart <code>Number<\/code> t\u00fcr\u00fcn\u00fcn temsil edebilece\u011finden daha b\u00fcy\u00fck tam say\u0131lar\u0131 temsil etmek i\u00e7in ES2020 ile eklenmi\u015ftir.<\/li>\n<\/ul>\n<p>Bu ilkel de\u011ferler, belle\u011fin &#8220;y\u0131\u011f\u0131n&#8221; (stack) ad\u0131 verilen k\u0131sm\u0131nda saklan\u0131r. Bir ilkel de\u011fer bir de\u011fi\u015fkenden di\u011ferine kopyaland\u0131\u011f\u0131nda, de\u011ferin kendisi kopyalan\u0131r. Yani, iki de\u011fi\u015fken birbirinden tamamen ba\u011f\u0131ms\u0131z hale gelir. Bu durum, \u00f6zellikle de\u011ferlerin manip\u00fclasyonu s\u0131ras\u0131nda beklenmedik yan etkilerin \u00f6n\u00fcne ge\u00e7mek i\u00e7in \u00f6nemlidir. \u00d6rne\u011fin, bir say\u0131y\u0131 bir fonksiyona g\u00f6nderdi\u011finizde, fonksiyon i\u00e7inde yap\u0131lan de\u011fi\u015fiklikler orijinal say\u0131y\u0131 etkilemez.<\/p>\n<p>\u015eimdi bir \u00f6rnekle bu durumu daha netle\u015ftirelim:<\/p>\n<div class=\"code-container\">\n<pre><code>\nlet sayi1 = 10;\nlet sayi2 = sayi1; \/\/ sayi1'in de\u011feri olan 10, sayi2'ye kopyalan\u0131r.\n\nconsole.log(\"Ba\u015flang\u0131\u00e7: sayi1 =\", sayi1, \", sayi2 =\", sayi2); \/\/ \u00c7\u0131kt\u0131: Ba\u015flang\u0131\u00e7: sayi1 = 10 , sayi2 = 10\n\nsayi2 = 20; \/\/ sayi2'nin de\u011feri de\u011fi\u015ftirildi.\n\nconsole.log(\"De\u011fi\u015fim Sonras\u0131: sayi1 =\", sayi1, \", sayi2 =\", sayi2); \/\/ \u00c7\u0131kt\u0131: De\u011fi\u015fim Sonras\u0131: sayi1 = 10 , sayi2 = 20\n        <\/pre>\n<p><\/code>\n    <\/div>\n<p>Yukar\u0131daki \u00f6rnekte, <code>sayi2<\/code>'yi de\u011fi\u015ftirmemize ra\u011fmen <code>sayi1<\/code>'in de\u011feri ayn\u0131 kalm\u0131\u015ft\u0131r. \u00c7\u00fcnk\u00fc <code>sayi1<\/code>'in de\u011feri (10) <code>sayi2<\/code>'ye kopyalanm\u0131\u015ft\u0131r ve bu iki de\u011fi\u015fken art\u0131k tamamen ba\u011f\u0131ms\u0131zd\u0131r. Bu davran\u0131\u015f, ilkel de\u011ferlerin \"de\u011ferine g\u00f6re kopyalama\" (copy by value) prensibiyle \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 g\u00f6sterir.<\/p>\n<h2>Referans Tiplerine Yak\u0131ndan Bak\u0131\u015f: Nesnelerin D\u00fcnyas\u0131 ve Bellek Y\u00f6netimi<\/h2>\n<p>JavaScript'teki referans (reference) de\u011ferler, ilkel de\u011ferlerden \u00e7ok daha karma\u015f\u0131k ve esnek veri yap\u0131lar\u0131d\u0131r. Bunlar do\u011frudan de\u011feri de\u011fil, de\u011ferin bellekte sakland\u0131\u011f\u0131 konumu (adresini veya referans\u0131n\u0131) temsil ederler. JavaScript'te referans t\u00fcrlerinin en bilinenleri \u015funlard\u0131r:<\/p>\n<ul>\n<li><code>Object<\/code> (Nesne): Anahtar-de\u011fer \u00e7iftlerinden olu\u015fan koleksiyonlard\u0131r. JavaScript'teki neredeyse her \u015fey (diziler, fonksiyonlar vb.) asl\u0131nda birer nesnedir.<\/li>\n<li><code>Array<\/code> (Dizi): S\u0131ral\u0131 eleman koleksiyonlar\u0131d\u0131r ve teknik olarak bir nesne t\u00fcr\u00fcd\u00fcr.<\/li>\n<li><code>Function<\/code> (Fonksiyon): Y\u00fcr\u00fct\u00fclebilir kod bloklar\u0131d\u0131r ve ayn\u0131 zamanda birer nesnedir.<\/li>\n<\/ul>\n<p>Referans de\u011ferler, belle\u011fin \"y\u0131\u011f\u0131n\" (heap) ad\u0131 verilen dinamik k\u0131sm\u0131nda saklan\u0131r. Bir de\u011fi\u015fken bir referans de\u011fere atand\u0131\u011f\u0131nda, asl\u0131nda o de\u011ferin bellekteki adresini (referans\u0131n\u0131) tutar. Bir referans de\u011fer ba\u015fka bir de\u011fi\u015fkene kopyaland\u0131\u011f\u0131nda ise, kopyalanan \u015fey de\u011ferin kendisi de\u011fil, o de\u011ferin bellekteki adresidir. Bu durum, iki de\u011fi\u015fkenin ayn\u0131 bellek konumunu i\u015faret etmesine neden olur ve dolay\u0131s\u0131yla ayn\u0131 nesneye eri\u015fmelerini sa\u011flar. Bu nedenle, bir de\u011fi\u015fken arac\u0131l\u0131\u011f\u0131yla yap\u0131lan de\u011fi\u015fiklikler, ayn\u0131 referans\u0131 payla\u015fan di\u011fer t\u00fcm de\u011fi\u015fkenler i\u00e7in de ge\u00e7erli olur.<\/p>\n<p>Bu mekanizma, \u00f6zellikle b\u00fcy\u00fck veri yap\u0131lar\u0131 veya karma\u015f\u0131k nesnelerle \u00e7al\u0131\u015f\u0131rken performans avantaj\u0131 sa\u011flar; \u00e7\u00fcnk\u00fc her kopyalamada t\u00fcm nesnenin yeniden olu\u015fturulmas\u0131 gerekmez. Ancak, bu durum ayn\u0131 zamanda beklenmedik yan etkilerin de ana kayna\u011f\u0131d\u0131r. Bir nesnenin bir kopyas\u0131n\u0131 olu\u015fturdu\u011funuzu d\u00fc\u015f\u00fcn\u00fcrken, asl\u0131nda sadece ayn\u0131 nesneye i\u015faret eden yeni bir etiket (de\u011fi\u015fken) olu\u015fturmu\u015f olabilirsiniz.<\/p>\n<p>\u015eimdi bir \u00f6rnekle referans de\u011ferlerin nas\u0131l davrand\u0131\u011f\u0131n\u0131 inceleyelim:<\/p>\n<div class=\"code-container\">\n<pre><code>\nlet kisi1 = { ad: \"Ay\u015fe\", yas: 30 };\nlet kisi2 = kisi1; \/\/ kisi1'in i\u015faret etti\u011fi nesnenin referans\u0131, kisi2'ye kopyalan\u0131r.\n                    \/\/ Art\u0131k kisi1 ve kisi2 ayn\u0131 nesneyi i\u015faret ediyor.\n\nconsole.log(\"Ba\u015flang\u0131\u00e7: kisi1 =\", kisi1, \", kisi2 =\", kisi2);\n\/\/ \u00c7\u0131kt\u0131: Ba\u015flang\u0131\u00e7: kisi1 = { ad: 'Ay\u015fe', yas: 30 } , kisi2 = { ad: 'Ay\u015fe', yas: 30 }\n\nkisi2.yas = 31; \/\/ kisi2 \u00fczerinden nesnenin 'yas' \u00f6zelli\u011fi de\u011fi\u015ftirildi.\n\nconsole.log(\"De\u011fi\u015fim Sonras\u0131: kisi1 =\", kisi1, \", kisi2 =\", kisi2);\n\/\/ \u00c7\u0131kt\u0131: De\u011fi\u015fim Sonras\u0131: kisi1 = { ad: 'Ay\u015fe', yas: 31 } , kisi2 = { ad: 'Ay\u015fe', yas: 31 }\n        <\/pre>\n<p><\/code>\n    <\/div>\n<p>Bu \u00f6rnekte, <code>kisi2<\/code>'nin <code>yas<\/code> \u00f6zelli\u011fini de\u011fi\u015ftirmemize ra\u011fmen, <code>kisi1<\/code>'in <code>yas<\/code> \u00f6zelli\u011fi de otomatik olarak g\u00fcncellenmi\u015ftir. Bunun nedeni, <code>kisi1<\/code> ve <code>kisi2<\/code>'nin bellekteki ayn\u0131 nesneye referans veriyor olmas\u0131d\u0131r. Bu davran\u0131\u015f, referans de\u011ferlerin \"referans\u0131na g\u00f6re kopyalama\" (copy by reference) prensibiyle \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 g\u00f6sterir.<\/p>\n<p>Bu temel ayr\u0131m\u0131 anlamak, \u00f6zellikle fonksiyonlarda arg\u00fcman ge\u00e7i\u015fleri, nesne kopyalama i\u015flemleri ve kar\u015f\u0131la\u015ft\u0131rma operat\u00f6rlerinin kullan\u0131m\u0131 gibi konularda do\u011fru kararlar vermenizi sa\u011flar. JavaScript'teki veri manip\u00fclasyonlar\u0131n\u0131n \u00e7o\u011funda bu ilke ge\u00e7erlidir ve bu nedenle her geli\u015ftiricinin bu konuya hakim olmas\u0131 kritik \u00f6neme sahiptir.<\/p>\n<h3>Neden Bu Fark \u00d6nemli: Pratik Senaryolar ve Beklenmedik Davran\u0131\u015flar Nelerdir?<\/h3>\n<p>\u0130lkel ve referans de\u011ferler aras\u0131ndaki fark, JavaScript kodunuzun davran\u0131\u015f\u0131n\u0131 derinden etkiler. Bu fark\u0131 g\u00f6z ard\u0131 etmek, s\u0131k\u00e7a kar\u015f\u0131la\u015f\u0131lan hatalara ve beklenmedik sonu\u00e7lara yol a\u00e7abilir. \u00d6zellikle a\u015fa\u011f\u0131daki pratik senaryolarda bu ayr\u0131m\u0131n \u00f6nemi ortaya \u00e7\u0131kar:<\/p>\n<ul>\n<li><strong>De\u011fi\u015fken Atamalar\u0131:<\/strong> Bir ilkel de\u011feri ba\u015fka bir de\u011fi\u015fkene atad\u0131\u011f\u0131n\u0131zda, de\u011ferin kendisi kopyalan\u0131r ve yeni de\u011fi\u015fken ba\u011f\u0131ms\u0131z hale gelir. Ancak bir referans de\u011feri atad\u0131\u011f\u0131n\u0131zda, sadece referans kopyalan\u0131r ve her iki de\u011fi\u015fken de ayn\u0131 nesneyi i\u015faret eder. Bu durum, bir de\u011fi\u015fken \u00fczerinden yap\u0131lan de\u011fi\u015fikli\u011fin di\u011ferini de etkilemesine neden olabilir.<\/li>\n<li><strong>Fonksiyon Arg\u00fcmanlar\u0131:<\/strong> Bir fonksiyona ilkel bir de\u011fer ge\u00e7irdi\u011finizde, fonksiyon i\u00e7inde bu de\u011fer \u00fczerinde yap\u0131lan de\u011fi\u015fiklikler orijinal de\u011feri etkilemez. Ancak bir referans de\u011feri (nesne veya dizi) ge\u00e7irdi\u011finizde, fonksiyon i\u00e7inde nesnenin \u00f6zelliklerinde yap\u0131lan de\u011fi\u015fiklikler orijinal nesneyi de etkiler. Bu \"yan etki\", fonksiyonlar\u0131n saf (pure) kalmas\u0131n\u0131 zorla\u015ft\u0131r\u0131r ve kodun tahmin edilebilirli\u011fini azaltabilir.<\/li>\n<li><strong>Kar\u015f\u0131la\u015ft\u0131rma Operat\u00f6rleri (<code>==<\/code> ve <code>===<\/code>):<\/strong> \u0130lkel de\u011ferler i\u00e7in <code>==<\/code> ve <code>===<\/code> operat\u00f6rleri de\u011ferleri kar\u015f\u0131la\u015ft\u0131r\u0131r. Ancak referans de\u011ferler i\u00e7in bu operat\u00f6rler, iki de\u011fi\u015fkenin ayn\u0131 bellek konumunu (ayn\u0131 nesneyi) i\u015faret edip etmedi\u011fini kontrol eder. Yani, iki farkl\u0131 ama ayn\u0131 i\u00e7eri\u011fe sahip nesne, <code>===<\/code> ile kar\u015f\u0131la\u015ft\u0131r\u0131ld\u0131\u011f\u0131nda <code>false<\/code> d\u00f6necektir, \u00e7\u00fcnk\u00fc bellekte farkl\u0131 konumlardad\u0131rlar.<\/li>\n<\/ul>\n<p>Bu fark\u0131 anlamak, \u00f6zellikle b\u00fcy\u00fck ve karma\u015f\u0131k uygulamalarda veri b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc korumak, hatalar\u0131 ay\u0131klamak ve daha temiz, \u00f6ng\u00f6r\u00fclebilir kod yazmak i\u00e7in hayati \u00f6neme sahiptir. \u00d6rne\u011fin, bir kullan\u0131c\u0131n\u0131n sepetindeki \u00fcr\u00fcnleri d\u00fczenlerken, \u00fcr\u00fcn listesini yanl\u0131\u015fl\u0131kla \"referans kopyalama\" yaparak de\u011fi\u015ftirmeniz, uygulaman\u0131zda ciddi sorunlara yol a\u00e7abilir. Bu nedenle, JavaScript'teki veri tiplerinin bu temel ayr\u0131m\u0131n\u0131 kavramak, her seviyeden geli\u015ftirici i\u00e7in vazge\u00e7ilmez bir beceridir.<\/p>\n<h2>De\u011fi\u015fken Atamalar\u0131 ve Kopyalama Mekanizmalar\u0131 Nas\u0131l \u00c7al\u0131\u015f\u0131r?<\/h2>\n<p>JavaScript'te bir de\u011fi\u015fkeni di\u011ferine atad\u0131\u011f\u0131m\u0131zda, bu i\u015flemin arka plan\u0131nda yatan mekanizma, atanan de\u011ferin t\u00fcr\u00fcne g\u00f6re farkl\u0131l\u0131k g\u00f6sterir. Bu farkl\u0131l\u0131k, kodunuzun davran\u0131\u015f\u0131n\u0131 do\u011frudan etkiler ve bazen beklenmedik sonu\u00e7lara yol a\u00e7abilir. Bu nedenle, atama (assignment) ve kopyalama (copying) mekanizmalar\u0131n\u0131 derinlemesine anlamak, JavaScript'te veri manip\u00fclasyonu yaparken kritik \u00f6neme sahiptir.<\/p>\n<h3>\u0130lkel De\u011ferlerin Atanmas\u0131: De\u011fer Kopyalama<\/h3>\n<p>\u0130lkel bir de\u011feri (say\u0131, dize, boolean vb.) bir de\u011fi\u015fkenden di\u011ferine atad\u0131\u011f\u0131n\u0131zda, JavaScript asl\u0131nda de\u011ferin bir kopyas\u0131n\u0131 olu\u015fturur ve bu kopyay\u0131 yeni de\u011fi\u015fkene atar. Bu i\u015fleme \"de\u011fer kopyalama\" (copy by value) denir. Sonu\u00e7 olarak, iki de\u011fi\u015fken birbirinden tamamen ba\u011f\u0131ms\u0131z hale gelir. Birindeki de\u011fi\u015fikli\u011fin di\u011ferini etkilememesi garantidir.<\/p>\n<div class=\"code-container\">\n<pre><code>\nlet puan = 100;\nlet yeniPuan = puan; \/\/ puan'\u0131n de\u011feri (100) yeniPuan'a kopyalan\u0131r.\n\nconsole.log(\"Ba\u015flang\u0131\u00e7: puan =\", puan, \", yeniPuan =\", yeniPuan);\n\/\/ \u00c7\u0131kt\u0131: Ba\u015flang\u0131\u00e7: puan = 100 , yeniPuan = 100\n\nyeniPuan = 150; \/\/ yeniPuan'\u0131n de\u011feri de\u011fi\u015ftirildi.\n\nconsole.log(\"De\u011fi\u015fim Sonras\u0131: puan =\", puan, \", yeniPuan =\", yeniPuan);\n\/\/ \u00c7\u0131kt\u0131: De\u011fi\u015fim Sonras\u0131: puan = 100 , yeniPuan = 150\n        <\/pre>\n<p><\/code>\n    <\/div>\n<p>Yukar\u0131daki \u00f6rnekte g\u00f6r\u00fcld\u00fc\u011f\u00fc gibi, <code>yeniPuan<\/code>'\u0131 de\u011fi\u015ftirmek <code>puan<\/code> de\u011fi\u015fkeninin de\u011ferini etkilememi\u015ftir. Bu durum, ilkel de\u011ferlerin her zaman kendi ba\u011f\u0131ms\u0131z kopyalar\u0131n\u0131 olu\u015fturdu\u011funu a\u00e7\u0131k\u00e7a g\u00f6stermektedir. Bu mekanizma, basit de\u011ferlerle \u00e7al\u0131\u015f\u0131rken g\u00fcvenli ve tahmin edilebilir bir davran\u0131\u015f sa\u011flar.<\/p>\n<h3>Referans De\u011ferlerin Atanmas\u0131: Referans Kopyalama<\/h3>\n<p>Referans bir de\u011feri (nesne, dizi, fonksiyon vb.) bir de\u011fi\u015fkenden di\u011ferine atad\u0131\u011f\u0131n\u0131zda ise durum farkl\u0131d\u0131r. JavaScript, de\u011ferin kendisini kopyalamaz; bunun yerine, de\u011ferin bellekteki adresini (referans\u0131n\u0131) kopyalar. Bu i\u015fleme \"referans kopyalama\" (copy by reference) denir. Bu, iki de\u011fi\u015fkenin bellekte ayn\u0131 nesneyi i\u015faret etti\u011fi anlam\u0131na gelir. Dolay\u0131s\u0131yla, bir de\u011fi\u015fken arac\u0131l\u0131\u011f\u0131yla nesnede yap\u0131lan herhangi bir de\u011fi\u015fiklik, di\u011fer de\u011fi\u015fken arac\u0131l\u0131\u011f\u0131yla da g\u00f6r\u00fclecektir, \u00e7\u00fcnk\u00fc her ikisi de ayn\u0131 temel nesneye eri\u015fmektedir.<\/p>\n<div class=\"code-container\">\n<pre><code>\nlet urun = { ad: \"Klavye\", fiyat: 250 };\nlet indirimliUrun = urun; \/\/ urun'un i\u015faret etti\u011fi nesnenin referans\u0131, indirimliUrun'e kopyalan\u0131r.\n                          \/\/ Art\u0131k urun ve indirimliUrun ayn\u0131 nesneyi i\u015faret ediyor.\n\nconsole.log(\"Ba\u015flang\u0131\u00e7: urun =\", urun, \", indirimliUrun =\", indirimliUrun);\n\/\/ \u00c7\u0131kt\u0131: Ba\u015flang\u0131\u00e7: urun = { ad: 'Klavye', fiyat: 250 } , indirimliUrun = { ad: 'Klavye', fiyat: 250 }\n\nindirimliUrun.fiyat = 200; \/\/ indirimliUrun \u00fczerinden nesnenin 'fiyat' \u00f6zelli\u011fi de\u011fi\u015ftirildi.\n\nconsole.log(\"De\u011fi\u015fim Sonras\u0131: urun =\", urun, \", indirimliUrun =\", indirimliUrun);\n\/\/ \u00c7\u0131kt\u0131: De\u011fi\u015fim Sonras\u0131: urun = { ad: 'Klavye', fiyat: 200 } , indirimliUrun = { ad: 'Klavye', fiyat: 200 }\n        <\/pre>\n<p><\/code>\n    <\/div>\n<p>Bu \u00f6rnekte, <code>indirimliUrun<\/code>'\u00fcn <code>fiyat<\/code> \u00f6zelli\u011fini de\u011fi\u015ftirdi\u011fimizde, <code>urun<\/code> de\u011fi\u015fkeninin i\u015faret etti\u011fi nesnenin <code>fiyat<\/code> \u00f6zelli\u011fi de de\u011fi\u015fmi\u015ftir. Bu durum, her iki de\u011fi\u015fkenin ayn\u0131 bellek adresini payla\u015ft\u0131\u011f\u0131n\u0131 ve dolay\u0131s\u0131yla ayn\u0131 nesne \u00fczerinde i\u015flem yapt\u0131\u011f\u0131n\u0131 kan\u0131tlar. Bu mekanizma, b\u00fcy\u00fck ve karma\u015f\u0131k veri yap\u0131lar\u0131n\u0131 verimli bir \u015fekilde y\u00f6netmek i\u00e7in tasarlanm\u0131\u015ft\u0131r, ancak ayn\u0131 zamanda dikkatli kullan\u0131lmad\u0131\u011f\u0131nda hatalara yol a\u00e7abilir.<\/p>\n<p>Bu nedenle, bir referans de\u011ferini ger\u00e7ekten kopyalamak (yani ba\u011f\u0131ms\u0131z bir kopyas\u0131n\u0131 olu\u015fturmak) istedi\u011finizde \u00f6zel y\u00f6ntemler kullanman\u0131z gerekir. Bu y\u00f6ntemlere \"s\u0131\u011f kopyalama\" (shallow copy) ve \"derin kopyalama\" (deep copy) denir ve sonraki b\u00f6l\u00fcmlerde detayl\u0131ca incelenecektir. Bu ayr\u0131m\u0131 kavramak, JavaScript'te veri manip\u00fclasyonunda ustala\u015fman\u0131n temelidir.<\/p>\n<h2>Fonksiyon Parametreleri ve De\u011fer Tiplerinin Etkile\u015fimi<\/h2>\n<p>Fonksiyonlara parametre (arg\u00fcman) ge\u00e7irmek, herhangi bir programlama dilinde temel bir i\u015flemdir. Ancak JavaScript'te, bir fonksiyona ge\u00e7irdi\u011finiz de\u011ferin ilkel mi yoksa referans bir de\u011fer mi oldu\u011funa ba\u011fl\u0131 olarak, fonksiyon i\u00e7inde yap\u0131lan de\u011fi\u015fikliklerin orijinal de\u011feri etkileyip etkilemeyece\u011fi farkl\u0131l\u0131k g\u00f6sterir. Bu, fonksiyonlar\u0131n yan etkilerini (side effects) anlamak ve kodunuzun tahmin edilebilirli\u011fini sa\u011flamak i\u00e7in kritik bir konudur.<\/p>\n<h3>\u0130lkel De\u011ferlerin Fonksiyonlara Ge\u00e7i\u015fi: G\u00fcvenli ve Ba\u011f\u0131ms\u0131z De\u011fi\u015fimler<\/h3>\n<p>Bir fonksiyona ilkel bir de\u011fer (say\u0131, dize, boolean vb.) parametre olarak ge\u00e7irdi\u011finizde, JavaScript asl\u0131nda bu de\u011ferin bir kopyas\u0131n\u0131 olu\u015fturur ve bu kopyay\u0131 fonksiyonun yerel de\u011fi\u015fkenine atar. Bu, \"de\u011ferine g\u00f6re ge\u00e7i\u015f\" (pass by value) olarak bilinir. Fonksiyon i\u00e7inde bu kopyalanan de\u011fer \u00fczerinde yap\u0131lan herhangi bir de\u011fi\u015fiklik, fonksiyonun d\u0131\u015f\u0131ndaki orijinal de\u011feri kesinlikle etkilemez. Bu durum, fonksiyonlar\u0131n d\u0131\u015f d\u00fcnya ile etkile\u015fimini s\u0131n\u0131rlad\u0131\u011f\u0131 i\u00e7in, daha g\u00fcvenli ve yeniden kullan\u0131labilir fonksiyonlar yazman\u0131za olanak tan\u0131r.<\/p>\n<div class=\"code-container\">\n<pre><code>\nfunction puanArtir(puan) {\n  puan += 10; \/\/ Fonksiyon i\u00e7indeki 'puan' kopyas\u0131 de\u011fi\u015ftirildi.\n  console.log(\"Fonksiyon i\u00e7inde puan:\", puan); \/\/ \u00c7\u0131kt\u0131: Fonksiyon i\u00e7inde puan: 110\n}\n\nlet oyuncuPuani = 100;\npuanArtir(oyuncuPuani);\n\nconsole.log(\"Fonksiyon d\u0131\u015f\u0131nda oyuncuPuani:\", oyuncuPuani); \/\/ \u00c7\u0131kt\u0131: Fonksiyon d\u0131\u015f\u0131nda oyuncuPuani: 100\n        <\/pre>\n<p><\/code>\n    <\/div>\n<p>Yukar\u0131daki \u00f6rnekte, <code>puanArtir<\/code> fonksiyonu i\u00e7inde <code>puan<\/code> parametresinin de\u011feri art\u0131r\u0131lmas\u0131na ra\u011fmen, fonksiyonun d\u0131\u015f\u0131ndaki <code>oyuncuPuani<\/code> de\u011fi\u015fkeninin de\u011feri de\u011fi\u015fmeden kalm\u0131\u015ft\u0131r. Bu, ilkel de\u011ferlerin fonksiyona ge\u00e7irildi\u011finde ba\u011f\u0131ms\u0131z bir kopyas\u0131n\u0131n olu\u015fturuldu\u011funu ve fonksiyonun orijinal de\u011fere eri\u015femedi\u011fini g\u00f6sterir.<\/p>\n<h3>Referans De\u011ferlerin Fonksiyonlara Ge\u00e7i\u015fi: Yan Etkiler ve Dikkat Edilmesi Gerekenler<\/h3>\n<p>Bir fonksiyona referans bir de\u011fer (nesne veya dizi) parametre olarak ge\u00e7irdi\u011finizde, JavaScript asl\u0131nda nesnenin kendisini de\u011fil, o nesnenin bellekteki referans\u0131n\u0131 (adresini) fonksiyona iletir. Bu, genellikle \"referans\u0131na g\u00f6re ge\u00e7i\u015f\" (pass by reference) olarak adland\u0131r\u0131lsa da, daha do\u011fru bir ifadeyle \"de\u011ferine g\u00f6re referans ge\u00e7i\u015fi\" (pass by value of the reference) olarak tan\u0131mlan\u0131r. Yani, referans\u0131n de\u011feri kopyalan\u0131r. Fonksiyonun yerel parametresi ve d\u0131\u015far\u0131daki de\u011fi\u015fken, art\u0131k ayn\u0131 nesneyi i\u015faret eder. Bu nedenle, fonksiyon i\u00e7inde bu nesnenin \u00f6zelliklerinde yap\u0131lan herhangi bir de\u011fi\u015fiklik, fonksiyonun d\u0131\u015f\u0131ndaki orijinal nesneyi de etkileyecektir. Bu durum, fonksiyonlarda \"yan etkilere\" yol a\u00e7abilir.<\/p>\n<div class=\"code-container\">\n<pre><code>\nfunction kullaniciBilgisiniGuncelle(kullanici) {\n  kullanici.yas += 1; \/\/ Fonksiyon i\u00e7inde nesnenin \u00f6zelli\u011fi de\u011fi\u015ftirildi.\n  kullanici.sehir = \"Ankara\"; \/\/ Yeni bir \u00f6zellik eklendi.\n  console.log(\"Fonksiyon i\u00e7inde kullan\u0131c\u0131:\", kullanici);\n  \/\/ \u00c7\u0131kt\u0131: Fonksiyon i\u00e7inde kullan\u0131c\u0131: { ad: 'Elif', yas: 26, sehir: 'Ankara' }\n}\n\nlet elif = { ad: \"Elif\", yas: 25 };\nkullaniciBilgisiniGuncelle(elif);\n\nconsole.log(\"Fonksiyon d\u0131\u015f\u0131nda elif:\", elif);\n\/\/ \u00c7\u0131kt\u0131: Fonksiyon d\u0131\u015f\u0131nda elif: { ad: 'Elif', yas: 26, sehir: 'Ankara' }\n        <\/pre>\n<p><\/code>\n    <\/div>\n<p>Bu \u00f6rnekte, <code>kullaniciBilgisiniGuncelle<\/code> fonksiyonu i\u00e7inde <code>kullanici<\/code> nesnesinin <code>yas<\/code> \u00f6zelli\u011fi art\u0131r\u0131lm\u0131\u015f ve <code>sehir<\/code> \u00f6zelli\u011fi eklenmi\u015ftir. Fonksiyonun d\u0131\u015f\u0131ndaki <code>elif<\/code> nesnesi de bu de\u011fi\u015fikliklerden etkilenmi\u015ftir. Bu, referans de\u011ferlerin fonksiyonlara ge\u00e7irildi\u011finde, fonksiyonun orijinal nesne \u00fczerinde do\u011frudan i\u015flem yapabildi\u011fini g\u00f6sterir.<\/p>\n<p>Bu yan etkiler, \u00f6zellikle b\u00fcy\u00fck kod tabanlar\u0131nda hatalar\u0131n izini s\u00fcrmeyi zorla\u015ft\u0131rabilir. Bu nedenle, bir fonksiyon i\u00e7inde referans tipleri \u00fczerinde de\u011fi\u015fiklik yaparken dikkatli olmak veya nesnenin bir kopyas\u0131n\u0131 olu\u015fturup o kopya \u00fczerinde i\u015flem yapmak (immutability - de\u011fi\u015fmezlik prensibi) iyi bir uygulamad\u0131r. <code>const<\/code> anahtar kelimesi ile bir referans tipini tan\u0131mlamak, de\u011fi\u015fkenin referans\u0131n\u0131n de\u011fi\u015ftirilmesini engeller, ancak i\u015faret etti\u011fi nesnenin i\u00e7eri\u011finin de\u011fi\u015ftirilmesine izin verir. Yani <code>const<\/code>, referans\u0131n kendisini sabitleyen bir anahtard\u0131r, nesnenin i\u00e7eri\u011fini de\u011fil.<\/p>\n<h2>Ger\u00e7ek D\u00fcnya Senaryolar\u0131nda \u0130lkel ve Referans De\u011ferler: Vaka Analizleri<\/h2>\n<p>Teorik bilgiler \u00f6nemlidir, ancak ilkel ve referans de\u011ferler aras\u0131ndaki fark\u0131n ger\u00e7ek d\u00fcnya senaryolar\u0131nda nas\u0131l bir etki yaratt\u0131\u011f\u0131n\u0131 g\u00f6rmek, konuyu daha iyi kavramam\u0131z\u0131 sa\u011flar. \u0130\u015fte g\u00fcnl\u00fck geli\u015ftirme s\u00fcre\u00e7lerinde kar\u015f\u0131la\u015fabilece\u011finiz birka\u00e7 vaka analizi:<\/p>\n<h3>Vaka 1: E-ticaret Sepetinde \u00dcr\u00fcn Fiyatlar\u0131n\u0131 G\u00fcncelleme<\/h3>\n<p>Bir e-ticaret uygulamas\u0131nda, kullan\u0131c\u0131lar\u0131n sepetlerinde \u00fcr\u00fcnler bulunur. Bu \u00fcr\u00fcnler genellikle nesne dizileri olarak temsil edilir. Diyelim ki, bir y\u00f6netici indirim kampanyas\u0131 ba\u015flatmak ve t\u00fcm \u00fcr\u00fcnlerin fiyatlar\u0131n\u0131 belirli bir oranda d\u00fc\u015f\u00fcrmek istiyor. E\u011fer bu i\u015flemi referans kopyalama mekanizmas\u0131n\u0131 g\u00f6z ard\u0131 ederek yaparsa, beklenmedik sonu\u00e7larla kar\u015f\u0131la\u015fabilir.<\/p>\n<div class=\"code-container\">\n<pre><code>\nlet sepetUrunleri = [\n  { id: 1, ad: \"Laptop\", fiyat: 1200, adet: 1 },\n  { id: 2, ad: \"Mouse\", fiyat: 50, adet: 2 }\n];\n\n\/\/ Yanl\u0131\u015f Yakla\u015f\u0131m: Referans kopyalama\nlet indirimliSepet = sepetUrunleri; \/\/ Sadece referans kopyaland\u0131!\n\nfunction indirimUygula(urunler) {\n  urunler.forEach(urun => {\n    urun.fiyat *= 0.9; \/\/ Fiyat\u0131 %10 d\u00fc\u015f\u00fcr\n  });\n}\n\nindirimUygula(indirimliSepet);\n\nconsole.log(\"Orijinal Sepet Sonras\u0131:\", sepetUrunleri);\n\/*\n\u00c7\u0131kt\u0131:\n[\n  { id: 1, ad: 'Laptop', fiyat: 1080, adet: 1 },\n  { id: 2, ad: 'Mouse', fiyat: 45, adet: 2 }\n]\n*\/\nconsole.log(\"\u0130ndirimli Sepet Sonras\u0131:\", indirimliSepet);\n\/*\n\u00c7\u0131kt\u0131:\n[\n  { id: 1, ad: 'Laptop', fiyat: 1080, adet: 1 },\n  { id: 2, ad: 'Mouse', fiyat: 45, adet: 2 }\n]\n*\/\n        <\/pre>\n<p><\/code>\n    <\/div>\n<p>Yukar\u0131daki \u00f6rnekte, <code>indirimliSepet = sepetUrunleri;<\/code> sat\u0131r\u0131 ile sadece <code>sepetUrunleri<\/code> dizisinin referans\u0131 kopyalanm\u0131\u015ft\u0131r. Bu nedenle, <code>indirimUygula<\/code> fonksiyonu <code>indirimliSepet<\/code> \u00fczerinde i\u015flem yapt\u0131\u011f\u0131nda, asl\u0131nda orijinal <code>sepetUrunleri<\/code> dizisini de de\u011fi\u015ftirmi\u015ftir. Bu durum, kullan\u0131c\u0131n\u0131n sepetindeki \u00fcr\u00fcnlerin fiyatlar\u0131n\u0131n kal\u0131c\u0131 olarak de\u011fi\u015fmesine veya beklenmedik bir \u015fekilde indirim uygulanmam\u0131\u015f \u00fcr\u00fcnlerin de indirimli g\u00f6sterilmesine yol a\u00e7abilir.<\/p>\n<p><strong>Do\u011fru Yakla\u015f\u0131m:<\/strong> Orijinal sepeti etkilemeden yeni bir indirimli sepet olu\u015fturmak i\u00e7in diziyi ve i\u00e7indeki nesneleri kopyalamak gerekir. Bu, s\u0131\u011f (shallow) veya derin (deep) kopyalama y\u00f6ntemleriyle yap\u0131labilir.<\/p>\n<div class=\"code-container\">\n<pre><code><br \/>\nlet sepetUrunleriDogru = [<br \/>\n  { id: 1, ad: \"Laptop\", fiyat: 1200, adet: 1 },<br \/>\n  { id: 2, ad: \"Mouse\", fiyat: 50, adet: 2 }<br \/>\n];<\/p>\n<p>\/\/ Do\u011fru Yakla\u015f\u0131m: S\u0131\u011f kopyalama (spread operat\u00f6r\u00fc ile)<br \/>\n\/\/ Dizi kopyaland\u0131, ancak i\u00e7indeki nesneler hala referans olarak<\/p>\n","protected":false},"excerpt":{"rendered":"JavaScript ile uygulama geli\u015ftirirken, de\u011fi\u015fkenlerin nas\u0131l davrand\u0131\u011f\u0131 veya verilerin nas\u0131l kopyaland\u0131\u011f\u0131 konusunda kafa kar\u0131\u015f\u0131kl\u0131\u011f\u0131 ya\u015fad\u0131n\u0131z m\u0131?","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-41695","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 \u0130lkel ve Referans De\u011ferler: Derinlemesine Bir Bak\u0131\u015f - 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-ilkel-ve-referans-degerler-derinlemesine-bir-bakis\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"JavaScript&#039;te \u0130lkel ve Referans De\u011ferler: Derinlemesine Bir Bak\u0131\u015f\" \/>\n<meta property=\"og:description\" content=\"JavaScript ile uygulama geli\u015ftirirken, de\u011fi\u015fkenlerin nas\u0131l davrand\u0131\u011f\u0131 veya verilerin nas\u0131l kopyaland\u0131\u011f\u0131 konusunda kafa kar\u0131\u015f\u0131kl\u0131\u011f\u0131 ya\u015fad\u0131n\u0131z m\u0131?\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/javascriptte-ilkel-ve-referans-degerler-derinlemesine-bir-bakis\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-05-10T18:04:03+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"15 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/javascriptte-ilkel-ve-referans-degerler-derinlemesine-bir-bakis\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/javascriptte-ilkel-ve-referans-degerler-derinlemesine-bir-bakis\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"JavaScript&#8217;te \u0130lkel ve Referans De\u011ferler: Derinlemesine Bir Bak\u0131\u015f\",\"datePublished\":\"2026-05-10T18:04:03+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/javascriptte-ilkel-ve-referans-degerler-derinlemesine-bir-bakis\/\"},\"wordCount\":2592,\"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-ilkel-ve-referans-degerler-derinlemesine-bir-bakis\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/javascriptte-ilkel-ve-referans-degerler-derinlemesine-bir-bakis\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/javascriptte-ilkel-ve-referans-degerler-derinlemesine-bir-bakis\/\",\"name\":\"JavaScript'te \u0130lkel ve Referans De\u011ferler: Derinlemesine Bir Bak\u0131\u015f - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-05-10T18:04:03+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/javascriptte-ilkel-ve-referans-degerler-derinlemesine-bir-bakis\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/javascriptte-ilkel-ve-referans-degerler-derinlemesine-bir-bakis\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/javascriptte-ilkel-ve-referans-degerler-derinlemesine-bir-bakis\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"JavaScript&#8217;te \u0130lkel ve Referans De\u011ferler: Derinlemesine Bir Bak\u0131\u015f\"}]},{\"@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 \u0130lkel ve Referans De\u011ferler: Derinlemesine Bir Bak\u0131\u015f - 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-ilkel-ve-referans-degerler-derinlemesine-bir-bakis\/","og_locale":"tr_TR","og_type":"article","og_title":"JavaScript'te \u0130lkel ve Referans De\u011ferler: Derinlemesine Bir Bak\u0131\u015f","og_description":"JavaScript ile uygulama geli\u015ftirirken, de\u011fi\u015fkenlerin nas\u0131l davrand\u0131\u011f\u0131 veya verilerin nas\u0131l kopyaland\u0131\u011f\u0131 konusunda kafa kar\u0131\u015f\u0131kl\u0131\u011f\u0131 ya\u015fad\u0131n\u0131z m\u0131?","og_url":"https:\/\/fatihsoysal.com\/blog\/javascriptte-ilkel-ve-referans-degerler-derinlemesine-bir-bakis\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-05-10T18:04:03+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"15 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/javascriptte-ilkel-ve-referans-degerler-derinlemesine-bir-bakis\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/javascriptte-ilkel-ve-referans-degerler-derinlemesine-bir-bakis\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"JavaScript&#8217;te \u0130lkel ve Referans De\u011ferler: Derinlemesine Bir Bak\u0131\u015f","datePublished":"2026-05-10T18:04:03+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/javascriptte-ilkel-ve-referans-degerler-derinlemesine-bir-bakis\/"},"wordCount":2592,"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-ilkel-ve-referans-degerler-derinlemesine-bir-bakis\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/javascriptte-ilkel-ve-referans-degerler-derinlemesine-bir-bakis\/","url":"https:\/\/fatihsoysal.com\/blog\/javascriptte-ilkel-ve-referans-degerler-derinlemesine-bir-bakis\/","name":"JavaScript'te \u0130lkel ve Referans De\u011ferler: Derinlemesine Bir Bak\u0131\u015f - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-05-10T18:04:03+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/javascriptte-ilkel-ve-referans-degerler-derinlemesine-bir-bakis\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/javascriptte-ilkel-ve-referans-degerler-derinlemesine-bir-bakis\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/javascriptte-ilkel-ve-referans-degerler-derinlemesine-bir-bakis\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"JavaScript&#8217;te \u0130lkel ve Referans De\u011ferler: Derinlemesine Bir Bak\u0131\u015f"}]},{"@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\/41695","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=41695"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/41695\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=41695"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=41695"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=41695"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}