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,-InfinityveNaN. - Boolean: Mantıksal değer (
trueveyafalse). - 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:
- 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.
- 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).
- 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) |