> For the complete documentation index, see [llms.txt](https://hanuce.gitbook.io/javascript-egitimi/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hanuce.gitbook.io/javascript-egitimi/referans-reference-veri-tipleri.md).

# Referans (Reference) Veri Tipleri

Bir değişkende bir veya birçok **değeri referans eden (adresini tutan)** veri tipine referans (reference) veri tipi denir.

## Bir Veri Tipinin Referans (Reference) Olarak Nitelendirilmesi

İlkel değişkenlerin **doğrudan değerlerinin** tutulduğu bölümün **call stack** olduğunu ifade etmiştik.

Referans veri tiplerindeki değişkenler, belleğin "**bellek yığını (heap)**" olarak ifade edilen bölümündeki bir adreste **başka bir adresi (referansı)** tutarlar. Değişkenler **heap** olarak ifade edilen bu bölümde; parçalar halinde, rasgele konumlarda (hiyerarşik olarak), dinamik boyutlu ve referans ile erişilebilir halde tutulurlar.

<img src="https://1783608288-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtkAky55y3oAsmbswePAh%2Fuploads%2FDiX4KmbZ5BwT6oEnft0h%2Ffile.excalidraw.svg?alt=media&amp;token=2c985442-bab3-46f8-bcbd-a5bfa030d33f" alt="REFERANS DEĞİŞKENLER VE HAFIZA" class="gitbook-drawing">

**Heap** bölümü program tarafından yönetilir. Heap bölümünde değerler referans ettirildiği için bu bölüm dinamik (sabit olmayan) boyutludur. Veriler parçalı tutulduğu için ilkel tiplere göre erişim ve yürütme daha yavaştır.

## Referans Veri Türleri

* **`Array` - Dizi Nesnesi**
  * Köşeli parantezler ( **`[]`** ) arasında yazılan **değerler (value)** ile oluşan listeler **`array`** türündedir. **Anahtar (key)** kısmı doğal olarak **artan sıralı tamsayı** şeklindedir ve değiştirilemez. Döngüleneblirler.
* **`Object` - Nesne**
  * **Anahtar (key)** kısmı sadece **`string`** veri tipinde olan '**anahtar:değer**' ikililerinden oluşan ***veri türüdür***. Süslü parantezler arasında ( **`{ }`** ) yazılırlar. Döngüleneblirler.

Bu bölümde ayrıca **`new`** operatörü ile **`Map`** ve **`Set`** türleri de işlenecektir.
