Sitemap

Object(Nesneler) JavaScript

3 min readJan 9, 2024

--

Bugün Javascipt Object’ ler (Nesneler) hakkında öğrendiklerimi sizlerin dikkat etmesi gereken yerler hakkında bilgilerimi paylaşacağım.

  1. JavaScript dilinde önemli bir yere sahiptirler.
  2. JavaScript için ilkel değerler hariç her şey birer nesnedir yada nesne gibi davranırlar.(array-function-math-object)
  3. İlkel değerler(string, boolean, number,undefined)
  4. İlkel veri türleri değiştirilemez ve tek bir değer tipi depolayabilirlerken nesneler değişkendirler.
  5. Nesneler referans adresleri ile yaşarlar. Bu referans değeri bellekte atandığı konumu göstermektedir.
  6. {..} Süslü parantez kullanılarak nesneler oluşturulabilir ve {key : value} olarak sıralanırlar.
  7. Value değerleri ; string, boolean, array, object, number vb. veri türünde olabilir.
Object Reference

Bir nesneyi imzalı dosyaların bulunduğu bir dolap olarak hayal edebiliriz. Her veri parçası anahtar tarafından kendi dosyasında saklanır. Bir dosyayı adına göre bulmak veya dosya eklemek/kaldırmak kolaydır.

Nesnem bütün bir dolabımı ifade ederken içerisinde bulunan key’lerim dosyalarım olarak nitelendirilebilir.

let user = { // object
name : "Hakan", // key = user , value = "Hakan"
age : 24, // key = age , value = 24
}
console.log(user);

“user” adlı nesnemde ;

  1. İlk anahtarımın adı “name” ve değeri “Hakan” dır.
  2. İkinci anahtarımın adı “age” ve değeri 24' tür.

name ve age adında dosyası bulunan bir dolap olarak düşünülmelidir.

Press enter or click to view image in full size
Object Reference

Get Hakan Yigit Ozen’s stories in your inbox

Join Medium for free to get updates from this writer.

Nesnelerde Bir Key Değerine Erişme Ve Değiştirme:

  • Nesnelerde bir key değerine erişebilmek için tanımladığım nesne isminden sonra nokta (.) koyularak erişilebilir hale gelmektedir.
let user = {
name : "Hakan",
age : 24,
"is admin" : true,
}
console.log(user.name); // "Hakan"

user.admin = "Yiğit" // Nesnenin içerisine key'i admin olan ve değeri "Yiğit" olan bir atama yaptım
console.log(user);

Burada dikkat etmemiz gereken nokta eğer “user” nesnemin içinde key’i “admin” olan bir değerim olsaydı yaptığım değişiklik sonucu “Yiğit” değerini görecektim.

let user = {
name : "Hakan",
age : 24,
"is admin" : true,
admin : "unnamed",
}
console.log(user.name); // "Hakan"

user.admin = "Yiğit"
console.log(user);
//"name": "Hakan",
//"age": 24,
//"is admin": true,
//"admin": "Yiğit"
let user={}
let key = "is admin"
user[key] = true
console.log(user);

Nesnelerde Referans Adresleri :

  1. Atama operatörü (=) olmadan referans adresleri kopyalanamaz.
  2. Referans adreslerinin kopyalanması demek artık iki nesneminde yukarıda verilen örnek gibi tek bir dolabı işaret etmesi demektir.
let a ={}
let b = a // Referans adresi kopyalandı
let a = {}
let b = {}
console.log(a == b); // false
console.log(a === b); // false. içeriği aynı da olsa bunlar farklı dolap olarak düşünülmeli.

Object Destructure:

  • Parçalamak değiştirmek değildir yeniden bir adlandırma yapmaktır.
let { title, height, width} = options 

let { height:yükseklik , width:genişlik ,title:başlık} = options // böyle yaparak herhangi bir atama yapmadan sadece isim değişikliği yaptım ve varsayılan değeri kullanmaya devam ederim.
let options = {
title : "menu"
width : 100,
height : 200,
}
let { title, height=300 , width=150} = options // eğer options un içinde height ve width değeri olmasaydı burada yazılan degerleri görecektim.
let options = {
title : "menu"
width : 100,
height : 200,
}
let{ title, ...rest} = options
console.log(rest); //width ve height i görürüm.

Yukarıda gördüğünüz (…) ile kalan değerleri bir başka nesne içinde konumlandırdım buna yaymakta denilebilir.

const restaurant = {
name: 'İtalyan Pizza', //lokantaİsmi
konum: 'Kadıköy',
kategoriler: ['İtalyan', 'Mantarlı', 'Peynirli', 'Organik'], //çeşitler

acılısSaati: { //saatler
perşembe: {
açık: 12,
kapalı: 22,
},
cuma: {
açık: 11,
kapalı: 23,
},
cumartesi: {
açık: 0,
kapalı: 24,
},
},
}

const{
name:lokantaİsmi ,
kategoriler:çeşitler ,
acılısSaati:saatler,
yenıMenu : yeniSipariş = "pizza" // yeniMenu diye bir değişken olmadığından dolayı yeniSipariş adında bir değişken açıp "pizza" ataması yapıldı.
} = restaurant

Linkedin hesabımdan bağlantı kurabilirsiniz…

--

--