Sobes.tech
Junior

Farklı veri türleri arasındaki fark nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

JavaScript'te veriler temel tipler ve nesneler olarak ayrılır.

Temel Tipler:

  • String: Karakter dizisi. Değiştirilemez.
  • Number: Tamsayılar ve kayan nokta sayıları dahil olmak üzere sayılar, ayrıca Infinity, -Infinity ve NaN.
  • Boolean: Mantıksal değer (true veya false).
  • Null: Nesne yokluğunu temsil eden özel değer.
  • Undefined: Bir değişkene değer atanmadığında alınan değer.
  • Symbol: Benzersiz ve değiştirilemez temel tip, nesne özelliklerini tanımlamak için kullanılır.
  • BigInt: İstediğiniz uzunlukta tamsayılar.

Nesneler:

  • Object: Anahtar-değer çiftleri koleksiyonu. Değiştirilebilir. Örnekler: diziler, fonksiyonlar, düzenli ifadeler, tarih nesneleri.

Temel farklar:

  1. Değiştirilebilirlik (Mutability): Temel tipler değiştirilemez, yani değerleri doğrudan değiştirilemez. Değiştirmeye çalışıldığında yeni bir kopya oluşturulur. Nesneler değiştirilebilir, özellikleri eklenebilir, silinebilir ve değiştirilebilir.
  2. Değer / Referans ile iletim: Temel tipler değer ile iletilir (kendi değeri kopyalanır). Nesneler referans ile iletilir (nesnenin saklandığı bellek konumunun referansı kopyalanır).
  3. Karşılaştırma: Temel tipler değer ile karşılaştırılır. Nesneler referans ile karşılaştırılır (iki değişken aynı nesneye işaret eder).
// Örnekler
let str1 = "hello";
let str2 = str1; // str2, str1'in değerinin bir kopyasını alır
str1 = "world"; // str1 için yeni bir "world" dizisi oluşturulur
console.log(str2); // "hello" - str2 değişmedi

let obj1 = { name: "Alice" };
let obj2 = obj1; // obj2, aynı nesneye referans alır
obj1.name = "Bob"; // Nesnenin özelliği değiştirilir
console.log(obj2.name); // "Bob" - obj2 değişti

let num1 = 10;
let num2 = 10;
console.log(num1 === num2); // true - değerler karşılaştırılır

let objA = { value: 1 };
let objB = { value: 1 };
console.log(objA === objB); // false - referanslar karşılaştırılır (farklı nesneler, aynı içeriğe sahip olsalar bile)

Farklılık Tablosu:

Özellik Temel Tipler Nesneler
Değiştirilebilirlik Değiştirilemez Değiştirilebilir
Geçiş Değere göre Referansa göre
Karşılaştırma Değere göre Referansa göre
Depolama Değişkene doğrudan kaydedilir Bellekteki konuma referans
Veri Tipleri String, Number, Boolean, Null, Undefined, Symbol, BigInt Nesne (diziler, fonksiyonlar vb. dahil)