Anasayfa / JAVASCRIPT / JavaScript Veri Tipleri: Yeni Başlayanlar İçin Kapsamlı Rehber

JavaScript Veri Tipleri: Yeni Başlayanlar İçin Kapsamlı Rehber

Bir önceki içeriğimizde JavaScript’te değişkenleri (var, let ve const) ve bunların nasıl birer veri “kutusu” işlevi gördüğünü incelemiştik. Şimdi ise bu kutuların içine tam olarak ne tür veriler koyabileceğimizi keşfetme zamanı. JavaScript’te sayılarla, metinlerle, doğruluk durumlarıyla ya da devasa listelerle nasıl çalışırız? İşte bu noktada karşımıza Veri Tipleri (Data Types) kavramı çıkmaktadır.

Web sitenizde kullanıcının girdiği bir formu kontrol etmek, alışveriş sepetindeki ürünlerin fiyatını hesaplamak veya ekranda bir mesaj göstermek için farklı veri tiplerine ihtiyaç duyarsınız. Bu kapsamlı rehberimizde, JavaScript’teki temel veri tiplerini bol örneklerle ve anlaşılır bir dille öğreneceğiz.

JavaScript’te Dinamik Tip (Dynamic Typing) Nedir?

Diğer birçok programlama dilinden (örneğin Java veya C++) farklı olarak JavaScript, dinamik tipli (dynamically typed) bir dildir. Yani bir değişken oluşturduğunuzda, onun içine bir sayı mı yoksa bir metin mi koyacağınızı baştan belirtmek zorunda değilsinizdir. Değişkenin türü, programın çalışma zamanında atadığınız değere göre otomatik olarak belirlenir ve daha sonra tamamen farklı bir tipe dönüştürülebilir.

let benimDegiskenim = 15; // Şu an bir sayı
benimDegiskenim = "Merhaba"; // Şimdi bir metne (string) dönüştü!

JavaScript’te veri tipleri genel olarak iki ana kategoriye ayrılır: İlkel (Primitive) veri tipleri ve Karmaşık (Complex) veri tipleri.


İlkel (Primitive) Veri Tipleri

İlkel veri tipleri, en temel veri yapılarıdır ve içlerinde sadece tek bir değer barındırırlar. JavaScript’te 7 adet ilkel veri tipi bulunur.

1. String (Metinler)

String, metinsel ifadeleri saklamak için kullanılan veri tipidir. JavaScript’te bir metni tanımlamak için üç farklı yol kullanabilirsiniz: tek tırnak (' '), çift tırnak (" ") veya modern JavaScript ile gelen ters tırnak (backtick) (` `).

let isim = 'Ahmet'; // Tek tırnak
let mesaj = "Nasılsın?"; // Çift tırnak
let dil = "JavaScript";
let dinamikMesaj = `Hadi ${dil} öğrenelim!`; // Backtick ile değişken kullanma

Backtick (ters tırnak) kullanımı, metinlerin içine ${degiskenAdi} sözdizimi (syntax) ile dışarıdan değişkenleri doğrudan yerleştirmenize olanak tanır.

2. Number (Sayılar)

Birçok programlama dilinde tam sayılar (integer) ve ondalıklı sayılar (float) için ayrı veri tipleri bulunurken, JavaScript’te tüm sayılar tek bir Number veri tipi altında toplanmıştır. 64-bit ondalıklı sayı formatında tutulurlar.

let tamSayi = 42;
let ondalikliSayi = 3.14;
let negatifSayi = -15;

3. BigInt

Number veri tipinin güvenli bir şekilde saklayabileceği maksimum bir sınır vardır. Çok devasa sayılarla veya kriptografik işlemlerle uğraşmanız gerektiğinde BigInt devreye girer. Bir sayının BigInt olduğunu, sonuna eklenen n harfinden anlayabilirsiniz.

let devasaSayi = 90071992547409920n;

Not: BigInt veri tipleri ile normal Number veri tipleri birbirleriyle doğrudan matematiksel işleme sokulamaz.

4. Boolean (Mantıksal Değerler)

Boolean veri tipi, sadece iki değerden birini alabilir: true (doğru) veya false (yanlış). Genellikle kodumuzda karar verme mekanizmalarında, if/else koşullarında kullanılır.

let isikAcikMi = true;
let kullaniciGirisYaptiMi = false;

5. Undefined (Tanımsız)

JavaScript’in en ilginç tiplerinden biridir. Bir değişken oluşturup içine hiçbir değer atamazsanız, JavaScript bu değişkene otomatik olarak undefined değerini atar.

let sepetTutari;
console.log(sepetTutari); // Çıktı: undefined

6. Null (Boş Değer)

null, bir değişkenin bilinçli olarak boş bırakıldığını veya hiçbir değer taşımadığını belirtmek için geliştirici tarafından atanır. undefined sistem tarafından otomatik verilirken, null sizin kasıtlı tercihinizdir.

let secilenUrun = null; // Kullanıcı henüz bir ürün seçmedi.

7. Symbol

ES6 ile hayatımıza giren Symbol, tamamen benzersiz ve değiştirilemez (immutable) değerler yaratmak için kullanılır. Aynı metinle iki farklı Symbol yaratsanız bile, bunlar birbirine eşit olmaz.

let sembol1 = Symbol("anahtar");
let sembol2 = Symbol("anahtar");
console.log(sembol1 === sembol2); // Çıktı: false


Karmaşık (Referans) Veri Tipleri

Sadece tek bir değer yerine, birbirleriyle ilişkili çoklu değerleri tutmak istediğimizde karmaşık veri tiplerini kullanırız.

1. Object (Nesneler)

Nesneler, gerçek hayattaki kavramları özellikler (properties) ve metotlar şeklinde kodlamamızı sağlar. Kıvırcık parantezler { } kullanılarak “anahtar: değer” (key: value) şeklinde oluşturulurlar.

let araba = {
    marka: "Toyota",
    model: "Corolla",
    yil: 2022,
    satilikMi: false
};

// Nesnenin bir özelliğine erişmek:
console.log(araba.marka); // Çıktı: Toyota

2. Array (Diziler)

Diziler, birden fazla veriyi sıralı bir liste halinde tutmanızı sağlayan ve aslında teknik olarak arka planda özel bir “Object” olan yapılardır. Köşeli parantezler [ ] ile tanımlanırlar ve JavaScript’te bir dizi içinde farklı veri tiplerini aynı anda barındırabilirsiniz.

let karisikDizi = ["Elma", 5, true, null];
console.log(karisikDizi); // Çıktı: Elma


typeof Operatörü İle Veri Tipini Öğrenmek

Kodunuzda bir değişkenin o an hangi veri tipinde olduğunu öğrenmek istiyorsanız typeof komutunu kullanabilirsiniz.

let yas = 25;
console.log(typeof yas); // Çıktı: "number"

let isim = "Ayşe";
console.log(typeof isim); // Çıktı: "string"

let test = true;
console.log(typeof test); // Çıktı: "boolean"

Bilinmesi Gereken İlginç Bir Detay: JavaScript’te typeof null yazarsanız, konsolda "object" sonucunu görürsünüz. null aslında ilkel bir değerdir ancak bu durum JavaScript’in ilk yıllarından kalma ve geriye dönük uyumluluğu bozmamak adına düzeltilmeyen meşhur bir kodlama hatasıdır (bug).


Veri Tipi Dönüşümleri (Type Conversion)

JavaScript, esnek yapısı gereği bazen veri tiplerini otomatik olarak birbirine dönüştürmeye çalışır. Örneğin bir sayı ile bir metni çarpmaya kalkarsanız, JavaScript çökmez; metni gizlice sayıya çevirip işlemi yapmaya çalışır. Ancak işleri şansa bırakmamak için yerleşik dönüştürme fonksiyonlarını (String(), Number(), Boolean()) manuel olarak kullanmanız en doğrusudur.

let sayi = 10;
let metin = String(sayi); // Artık bir "10" metni

let yasMetni = "30";
let yasSayisi = Number(yasMetni); // Artık matematiksel bir 30 sayısı

let hataliMetin = "JavaScript";
console.log(Number(hataliMetin)); // Çıktı: NaN (Not a Number - Sayı Değil)

Eğer içinde harfler olan bir metni sayıya çevirmeye çalışırsanız, sistem size NaN değerini döndürür. Bu, “yaptığın işlem sonucunda ortaya matematiksel bir sayı çıkmadı” anlamına gelir.

Sonuç

Veri tipleri, yazdığımız kodun bilgisayar hafızasında nasıl yorumlanacağını belirleyen kilit kavramlardır. Sayılarla mı matematik işlemi yapıyoruz, metinleri mi birleştiriyoruz yoksa bir nesnenin detaylarını mı inceliyoruz? Bunların hepsinin sağlıklı çalışması için String, Number, Boolean, Object ve Array gibi JavaScript veri tiplerini iyi kavramak gerekir. İlk projenizi geliştirirken tarayıcı konsolunuzu açın ve typeof komutuyla oluşturduğunuz verilerin yapılarını test ederek bolca pratik yapın!

Etiketlendi:

Cevap bırakın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir