في هذه المقالة، سنستكشف كيفية منع الأخطاء عند محاولة الوصول إلى البيانات التي قد تكون غير محددة أو فارغة ، وسننظر في الطرق التي يمكنك القيام بها تستخدم لإدارة البيانات بشكل فعال عند الضرورة.
في JavaScript، عند محاولة الوصول إلى قيمة أو وظيفة داخل كائنات متداخلة، إذا كانت النتيجة غير محددة، فقد يؤدي الرمز الخاص بك إلى حدوث خطأ. يمكن أن يؤدي هذا الخطأ إلى إيقاف تنفيذ التعليمات البرمجية الخاصة بك. ومع ذلك، إذا كنت تستخدم مشغل التسلسل الاختياري، فسوف يُرجع غير محدد بدلاً من إلقاء خطأ في حالة عدم وجود القيمة أو الوظيفة. هذا يمنع التعليمات البرمجية الخاصة بك من التعطل.
مثال :
const person = { name: 'John', address: { city: 'New York' } }; console.log(person.address?.city); // 'New York' console.log(person.address?.country); // undefined, no error
إذا كانت قيمة المتغير هي فارغة أو غير محددة،لتجنب ذلك، يمكنك استخدام عامل التشغيل الدمج الفارغ
مثال :
function getconfig(config) { return config ?? { timeout: 1000, retries: 3 }; } let userConfig = null; let finalConfig = getConfig(userConfig); // { timeout: 1000, retries: 3 } console.log(finalConfig);
إزالة التكرارات مع المجموعة :
بالنسبة لمصفوفة ذات قيم مكررة، يمكنك إزالة قيمة مكررة باستخدام set
مثال :
const letter= ["a", "b", "c" , "c" , "a" , "d" ,"d" ,]; const result= [...new Set(letter)]; console.log(result) => ["a", "b" , "c" , "d"]
منع التكرارات باستخدام WeakSet :
نظرًا لأن WeakSet تحتوي على مراجع للكائنات، فلا يمكن إضافة كائن إلى WeakSet إلا مرة واحدة.
مثال :
// Creating a WeakSet const weakset = new WeakSet(); // Defining objects const personJane = { name: 'jane' }; const personMike = { name: 'mike' }; // Adding objects to the WeakSet weakset.add(personJane); weakset.add(personMike); console.log(weakset.has(obj1)); // true console.log(weakset.has(obj2)); // true // Attempting to add the same object again weakset.add(obj1); // obj1 is already present, won't be added again console.log(weakset.has(obj1)); // true console.log(weakset.has(obj2)); // true // Removing an object from the WeakSet weakset.delete(obj1); console.log(weakset.has(obj1)); // false // Adding the object again weakset.add(obj1); console.log(weakset.has(obj1)); // true
في هذه المقالة، استكشفنا بعض المفاهيم المهمة التي يمكن أن تساعد في منع الأخطاء عند الوصول إلى القيم التي قد تكون غير محددة أو فارغة، بالإضافة إلى طرق إدارة البيانات بشكل أكثر فعالية عند الضرورة .
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3