الانتقال إلى المحتوى الرئيسي
الوحدة 3 · الدرس 2 من 410/32 في الدورة~10 min
دروس الوحدة (2/4)

الكائنات: خريطة القيمة الرئيسية

الكائن في JS هو مجموعة غير مرتبة من أزواج المفتاح → القيمة. المفاتيح هي سلاسل (أو Symbol)، والقيم هي أي شيء: أرقام، وسلاسل، المصفوفات والكائنات الأخرى والوظائف. إنها بنية البيانات الأكثر استخدامًا في اللغة: كل "سجل" في مجالك سيكون عادةً كائنًا.

JS
const utente = {
  nome: 'Anna',
  eta: 28,
  attivo: true,
  ruoli: ['admin', 'editor'],
};

خصائص القراءة: النقطة مقابل القوس

هناك نوعان من الرموز المكافئة:

JS
utente.nome; // 'Anna'    (dot — the normal form)
utente['nome']; // 'Anna'    (bracket — equivalent)

// Brackets are MANDATORY when:
// 1) the key is not a valid identifier
const tag = { 'codice-fiscale': 'ABC123' };
tag['codice-fiscale']; // OK
// tag.codice-fiscale;      // syntax error

// 2) the key is computed (variable/expression)
const campo = 'eta';
utente[campo]; // 28

تُرجع الخاصية المفقودة undefined، بدون أخطاء:

JS
utente.telefono; // undefined

إضافة، تعديل، إزالة

JS
const u = { nome: 'Anna' };
u.eta = 28; // adds
u.nome = 'Anna B.'; // modifies
delete u.eta; // removes the property

delete هي كلمة رئيسية. سوف يتبين أنها حالة استخدام نادرة: معظم الوقت الذي ستحتاج فيه إلى إنتاج كائن ** جديد ** بدون هذا المفتاح (سنرى هذا مع الانتشار).

الاختزال: المفاتيح المسماة مثل المتغير

عندما يتطابق اسم المفتاح مع اسم المتغير، يمكنك حذف التكرار:

JS
const nome = 'Anna';
const eta = 28;

const u1 = { nome: nome, eta: eta }; // explicit form
const u2 = { nome, eta }; // shorthand, equivalent

التحقق من وجود الممتلكات

ثلاثة خيارات حسب الأفضلية:

JS
'nome' in utente; // true   ← in operator
utente.nome !== undefined; // true   ← works almost always
Object.hasOwn(utente, 'nome'); // true   ← modern, safe

جربه

تمرين#js.m3.l2.e1
المحاولات: 0جارٍ التحميل…

قم بإنشاء الكائن user = { name: 'Sara', age: 22 }، ثم قم بإضافة الخاصية 'active' المعينة إلى true وأعد الكائن كتعبير أخير.

جارٍ تحميل المحرر…
إظهار التلميح

يمكنك إضافة خصائص بعد الحقيقة باستخدام التدوين النقطي.

الحل متاح بعد 3 من المحاولات

تمرين المراجعة

تمرين#js.m3.l2.e2
المحاولات: 0جارٍ التحميل…

بالنظر إلى `product = { code: 'A1', Price: 9.9 }` والسلسلة `key = 'price'`، قم بإرجاع السعر باستخدام تدوين القوسين (يجب أن تصل قيمة التعبير الأخير إلى 9.9).

جارٍ تحميل المحرر…
إظهار التلميح

باستخدام الأقواس يمكنك تمرير متغير كمفتاح.

الحل متاح بعد 3 من المحاولات