> 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/ilkel-primitive-veri-tipleri.md).

# İlkel (Primitive) Veri Tipleri

JavaScript'te programlama yaparken oluşturduğumuz değişkenlerin değerleri bir veri tipinde olur. **Belirli bir değerin doğrudan erişilebilir şekilde saklandığı** tiplere ilkel veri tipleri (**değer tipler**) denir. Genellikle her programlama dilinde mevcuttur.

## Bir Veri Tipinin İlkel (Primitive) Olarak Nitelendirilmesi

Değişkenlerin tutulduğu hafıza RAM bellektir. Hafıza birimlerinin bellekteki konumu "0x2c53df20350" gibi **adreslerle** matematiksel olarak ifade edilirler.

İlkel veri tiplerindeki değişkenler, belleğin  "**çağrılan yığın (call stack)**" olarak ifade edilen bölümündeki bir adreste **doğrudan değerleri** tutarlar. Değerler **stack** olarak ifade edilen bu bölümde; parçalanmadan, doğrusal konumda (bitişik), sabit boyutlu ve doğrudan erişilebilir halde tutulurlar.

<img src="https://1783608288-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtkAky55y3oAsmbswePAh%2Fuploads%2FIsK0MjKcqtkzjPSMwv3o%2Ffile.excalidraw.svg?alt=media&amp;token=18fea4bc-5adb-4454-9341-91dc83464f8b" alt="İLKEL DEĞİŞKENLER VE HAFIZA" class="gitbook-drawing">

**Stack** bölümü işletim sistemi tarafından yönetilir ve verilere hızlı erişilir. Fakat bir programda çok fazla ilkel veri tipinin kullanılması işletim sisteminde hafıza yetersizliğine yol açabilir.

## İlkel Veri Tipleri

1. **String - Karakter Dizisi**
   * Klavyeden girilen harf, rakam, nokta, virgül, boşluk vb. özel karakterle oluşan metin tipindeki veriler ***string*** tipidir.
2. **Number - Sayı**
   * Nümerik olan ve üzerinde matematiksel işlemler yapabileceğimiz veri tipidir. Tamsayı, ondalıklı sayı, sonsuz sayı, sayısal değer olmayan gibi değerlerin hepsi ***number*** tipinde veridir.
3. **Bigint - Büyüksayı**
   * 64-Bit uzunluğundaki sayısal veri tipidir. Sadece tamsayı olabilir ve teorik olarak ***number*** tipinin alabileceği en fazla değerden daha büyük bir değeriniz varsa kullanılabilir. Çoğu programlama dilinde mevcut değildir ama ilkeldir.
4. **Boolean - Mantıksal**
   * Sadece True (Doğru) ve False (Yanlış) değerini tutan veri tipidir.
5. **Symbol - Sembol**
   * Benzersiz tanımlayıcıdır. İlkel bir tiptir fakat bu tipe referans veri tiplerinden sonra değineceğiz.

Bir değişkenin tipini **`typeof degiskenAdi`** veya **`typeof(degiskenAdi)`** fonksiyonu ile öğrenebiliriz. Örnek.

{% code lineNumbers="true" %}

```javascript
let karakterDizisi = 'Javascript';
let sayi = 2023;
let buyukSayi = 1n;
let mantiksal = true;
alert(typeof karakterDizisi); // 'string' çıktısı verir.
alert( typeof(sayi) );  // 'number' çıktısı verir.
alert(typeof buyukSayi);  // 'bigint' çıktısı verir.
alert( typeof(mantiksal) );  // 'boolean' çıktısı verir.
```

{% endcode %}
