Massivlar: tartiblangan ro‘yxatlar
Massiv qiymatlar ro‘yxatini tartib bilan saqlaydi va ularga 0 dan boshlanadigan sonli indeks orqali murojaat qilinadi:
const fruits = ["apple", "banana", "cherry"];
fruits[0]; // "apple"
fruits.length; // 3
fruits[fruits.length - 1]; // "cherry" — last itemMassivni o‘zgartirishning keng tarqalgan usullari:
fruits.push("date"); // add to the end
fruits.pop(); // remove from the end
fruits.unshift("kiwi"); // add to the start
fruits.shift(); // remove from the start
fruits.includes("apple"); // true — is it in there?
fruits.indexOf("cherry"); // 2 — where is it? (-1 if absent)Obyektlar: nomlangan qiymatlar
Obyekt qiymatlarni sonli indekslar o‘rniga nomlangan kalitlar ostida saqlaydi. Undan har bir ma’lumot bo‘lagi ma’noga ega bo‘lganda foydalaning:
const user = {
name: "Ada",
age: 36,
isAdmin: true,
};Nuqta va kvadrat qavs orqali murojaat
Obyekt xususiyatlarini o‘qish va yozishning ikki usuli:
user.name; // "Ada" → dot notation, most common
user["name"]; // "Ada" → bracket notation
const key = "age";
user[key]; // 36 → brackets when the key is in a variableOdatiy holda nuqta yozuvidan foydalaning. Kvadrat qavslarga kalit o‘zgaruvchidan kelganda yoki u yaroqli identifikator bo‘lmaganda (bo‘shliqlarga ega bo‘lsa yoki son bilan boshlansa) murojaat qiling.
Qo‘shish, yangilash va o‘chirish:
user.email = "ada@x.com"; // add or update
delete user.age; // remove
"name" in user; // true — does the key exist?Mavjud bo‘lmagan xususiyatni o‘qish xato o‘rniga undefined qaytaradi:
user.phone; // undefinedIchma-ich joylashtirish
Obyektlar va massivlar erkin birlashadi, chunki haqiqiy ma’lumotlar (masalan, JSON API javobi) aynan shunday ko‘rinadi:
const post = {
title: "Hello",
tags: ["intro", "js"],
author: { name: "Ada" },
};
post.tags[0]; // "intro"
post.author.name; // "Ada"Nusxa va havola — eng muhimi
Bu deyarli har bir boshlovchini adashtiradi. Primitivlar (sonlar, satrlar, mantiqiy qiymatlar) qiymat bo‘yicha nusxalanadi. Obyektlar va massivlar esa havola bo‘yicha nusxalanadi — o‘zgaruvchi bitta bir xil asosiy narsaga ishora saqlaydi:
let a = 1;
let b = a;
b = 2;
console.log(a); // 1 — a is untouched
const list1 = [1, 2, 3];
const list2 = list1; // same array, not a copy!
list2.push(4);
console.log(list1); Massiv yoki obyektni haqiqatan ham nusxalash uchun uni yangisiga spread qiling:
const copy = [...list1]; // new array
const userCopy = { ...user }; // new objectBu spread sayoz (bir daraja chuqurlikdagi) nusxa yaratadi — bu kundalik holatlarning aksariyati uchun yetarli. Chuqur nusxalar haqida middle darajasida bilib olasiz.
Intervyu maslahatlari
- Massivlar indeksga asoslangan (0 dan); obyektlar kalitga asoslangan.
push/pop/shift/unshiftni va ularning har biri qaysi uchga ta’sir qilishini biling.- Dinamik kalitlar uchun kvadrat qavslardan foydalaning; mavjud bo‘lmagan kalitni o‘qish
undefinedberadi. - Qiymat bo‘yicha nusxalash va havola bo‘yicha nusxalash farqini tushuntiring va nusxalash uchun spread (
[...arr]) dan foydalaning.
Muhokama
Hozircha izoh yo‘q
Muhokamada qatnashish uchun tizimga kiring.
KirishHozircha fikr yo‘q
Birinchi bo‘lib yozing: bu mavzuda nima yordam berdi — yoki nimani aniqroq tushuntirish kerak.