الوصول إلى خصائص الكائنات مهارة أساسية في جافا سكريبت. تستعرض هذه المقالة أكثر الطرق شيوعًا، مع تسليط الضوء على نقاط قوتها وضعفها لمساعدتك في اختيار النهج الأنسب لحالتك.
محتويات
- الوصول إلى خصائص الكائنات باستخدام الترقيم النقطي
- الوصول إلى خصائص الكائنات باستخدام الترقيم القوسي
- معالجة الأخطاء المتينة
- اختيار الطريقة الصحيحة
الوصول إلى خصائص الكائنات باستخدام الترقيم النقطي
يوفر الترقيم النقطي طريقة نظيفة وسهلة القراءة للوصول إلى خصائص الكائنات عندما تعرف اسم الخاصية مسبقًا. إنه مختصر وفعال للمفاتيح الثابتة.
const myObject = {
name: "John Doe",
age: 30,
city: "New York"
};
const name = myObject.name; // name will be "John Doe"
const age = myObject.age; // age will be 30
console.log(name, age); // Output: John Doe 30
الوصول إلى خصائص الكائنات باستخدام الترقيم القوسي
يُوفر الترقيم القوسي مرونة أكبر، مما يسمح لك باستخدام المتغيرات أو التعبيرات كمفاتيح. هذا أمر لا يُقدر بثمن عند التعامل مع مفاتيح ديناميكية، أو مفاتيح تحتوي على مسافات أو أحرف خاصة، أو عند التكرار عبر خصائص الكائن.
const myObject = {
name: "John Doe",
age: 30,
city: "New York"
};
let key = "age";
const age = myObject[key]; // age will be 30
key = "city";
const city = myObject[key]; // city will be "New York"
let dynamicKey = "na" + "me";
const dynamicName = myObject[dynamicKey]; // dynamicName will be "John Doe"
console.log(age, city, dynamicName); // Output: 30 New York John Doe
// Iterating through object properties
for (let key in myObject) {
console.log(key + ": " + myObject[key]);
}
معالجة الأخطاء المتينة
محاولة الوصول إلى خاصية غير موجودة باستخدام أي من الطريقتين ستعيد undefined
. لمنع السلوك غير المتوقع، قم دائمًا بتضمين معالجة الأخطاء:
const myObject = { name: "John Doe" };
const key = "age";
const age = myObject[key];
if (age === undefined) {
console.log("خاصية 'age' غير موجودة.");
} else {
console.log("العمر:", age);
}
اختيار الطريقة الصحيحة
يُفضل استخدام الترقيم النقطي من أجل الوضوح عند التعامل مع أسماء الخصائص الثابتة المعروفة. يوفر الترقيم القوسي المرونة اللازمة للوصول إلى المفاتيح الديناميكية ومعالجة السيناريوهات الأكثر تعقيدًا.