April 28, 2023
Objects
let obj={key: "value"} //shu tarzda object yoziladi
let obj= {name: "Jamshidbek"}
//keyning yozilish turlari
let obj={name: "Jamshidbek"}
let obj={full_name: "Jamshidbek"} //pastki chiziq
let obj={"full name": "Jamshidbek"} // String ichida
let obj={fullName: "Jamshidbek"} // camelcase
let title = "name"; // o'zgaruvchi orqali
let obj={[title]: "Jamshidbek"}; // key = "name" title emasalert("Hello");
alert(["Hello"]);
alert(12345); // bu data typelarda kod ishlaydi let obj1={name: "Jamshidbek"};
alert(obj1); // bu xolatda biz objectni chiqara olmaymizlet obj1={name: "Jamshidbek"};
alert(obj1.name);
alert(obj1["name"]);Agar objectda ikkita bir xil key kelib qolsa doim oxirgisi olinadi va birinchisini ignore qivoradi.
let obj={name: "Jamshidbek", surname: "Rasulov", name: "Bekzodbek"}
console.log(obj);
//delete object
let obj={name: "Jamshidbek", surname: "Rasulov"}
delete obj.name;
console.log(obj) // surname: "Rasulov"
//change object value
let obj={name: "Jamshidbek", surname: "Rasulov"}
obj.name="Bekzodbek";
console.log(obj);
// add new key and value
let obj= {name: "Jamshidbek", surname: "Rasulov"}
obj.age=19;
console.log(obj); //bu objectga age ham qo'shildi
//Object.freeze() objectni muzlatadi.
let obj= {name: "Jamshidbek", surname: "Rasulov"}
Object.freeze();
obj.name="Bekzodbek"; //ignored
obj.age=19; //ignored
//Object.seal() faqatgina bor ma'lumotni yangilasa bo'ladi
let obj= {name: "Jamshidbek", surname: "Rasulov"}
obj.name="Jamshidbek"; let obj1 ={name: "Jamshidbek"};
let obj2 ={surname: "Rasulov"};
let obj3=obj1 // bu yerda obj3 ni obj1 ga tengladik yani obj1 ning
// linki to'liq obj3 ga tenglandi agar obj1 da qandaydir o'zgarish bo'lsa
// obj3 ga ham tasir qiladi
obj1.name = "Bekzodbek";
console.log(obj3);
5.structuredClone - bu objectni copy qilganda uning linki emas faqat ichidagi elementlarini o'zgartirib beradi, ya'ni keyinchalik objectni o'zgartirsangiz u ozgarmay qoladi.
let obj1 ={name: "Jamshidbek"};
let obj2 ={surname: "Rasulov"};
let obj3=structuredClone(obj1); //copy bo'ldi lekin faqatgina elementlari
// copy bo'ldi
obj1.name = "Bekzodbek";
console.log(obj3);6.Object assign- ikkita objectni bir biriga qo'shib beradi.
let obj1 ={name: "Jamshidbek"};
let obj2 ={surname: "Rasulov"};
Object.assign(obj1, obj2); // objectni qiymati obj1 va obj2 ning
// qo'shmasiga teng let obj={
name: "Jamshidbek";
surname: "Rasulov";
getData(){
return obj.name+obj.surname; // this metodini ishlatsak bo'ladi
}
}
console.log(obj.getData());
let obj={
name: "Jamshidbek";
surname: "Rasulov";
getData(){
return this.name+this.surname; // obj ishlatsak error beradi
}
}
let user= obj;
obj=null; // bu objectni malumotlari yoq bolib ketishi garbage boladi
console.log(user.getData());
let func = obj.getData;
console.log(func) // bu qism hatolik beradi agar this orniga obj ishlatsak
// hato chiqmaydi
let func = obj.title;
console.log(func); // bu kod xatolik bermaydi
primitive - heap da saqlanadi,
non-primitive - o'zi stackda joylashadi, valuesi heapda joylashadi
Garbage collection- non-primitive malumot turlari primitive ga o'zgarsa
stackdagi malumoti garbage collectionga tushadi.
8.Object keys and Objects values
let obj={
name: "Jamshidbek";
surname: "Rasulov";
}
console.log(Object.keys(obj)); keylarini chiqarib beradi
console.log(Object.values(obj)); valuelarini chiqarib beradi
console.log(Object.entries(obj)); hammasini chiqaradi
let obj={
name: "Jamshidbek";
surname: "Rasulov";
data: {age: 19};
}
console.log(obj.data.age);// bu xolatda togri chiqaradi
//optioanl
let obj={
name: "Jamshidbek";
surname: "Rasulov";
data: {age: 19};
}
obj.data=null;
console.log(obj.data.age); // bunda esa data malumoti null bolib
//qolgani uchun xato chiqadi;
console.log(obj.data?.age); // bu xolatda agar data malumoti bo'lsa
//chiqarib beradi aks xolda undefined;