قم بإجراء بعض التحسينات الصغيرة في أداء JavaScript!
تسرد هذه المقالة 24 اقتراحًا لجعل عملية البرمجة الخاصة بك أسهل وأكثر كفاءة. ربما كنت لا تزال مبتدئًا في JavaScript وقد انتهيت للتو من كتابة Hello World الخاصة بك. هناك العديد من النصائح هنا التي ستكون مفيدة جدًا لعملك. ربما تعرف بعض النصائح بالفعل، لذا حاول التصفح السريع ومعرفة ما إذا كان بإمكانك ذلك العثور عليهم.
ملاحظة: تستخدم هذه المقالة كائن وحدة تحكم Firebug عدة مرات، يرجى الرجوع إلى Firebug Console API . للحصول على مقدمة أكثر تفصيلاً عن Firebug، من فضلك انقر هنا .
1. استخدم === بدلاً من == هناك عاملي مساواة مختلفين في JavaScript: ===|!== و==|!=. وبالمقارنة، فإن الأول يستحق التوصية. يرجى محاولة استخدام السابق.
"إذا كان كائني المقارنة لهما نفس النوع والقيمة، فإن === تُرجع صحيحًا و!== تُرجع خطأ."
– جافا سكريبت: الأجزاء الجيدة
ومع ذلك، إذا كنت تستخدم == و!=، فقد تواجه بعض المشكلات غير المتوقعة عند تشغيل أنواع بيانات مختلفة. ستحاول JavaScript تحويلها إلى سلاسل أو أرقام أو كميات منطقية قبل إصدار حكم المساواة.
2. تجنب استخدام وظيفة التقييم
تأخذ الدالة Eval سلسلة كمعلمة، وتنفذ السلسلة كبيان JavaScript، وترجع النتيجة (المرجع).
لا تقلل هذه الوظيفة من كفاءة تنفيذ البرنامج النصي الخاص بك فحسب، بل إنها تزيد أيضًا من المخاطر الأمنية بشكل كبير لأنها تعطي قدرًا كبيرًا من القوة للمعلمة التي تمثل النص. لا تستخدمه!
3. لا تستخدم الكتابة السريعة
من الناحية الفنية، يمكنك حذف معظم الأقواس المتعرجة والفواصل المنقوطة اللاحقة، وستقوم معظم المتصفحات بتنفيذ العبارة التالية بشكل صحيح:
.إذا (بعض المتغيرات الموجودة)
س = خطأ
ولكن ماذا لو كان هذا هو الحال:
.إذا (بعض المتغيرات الموجودة)
س = خطأ
elseFunctionCall();
قد تعتقد أنها تعادل العبارة التالية:
إذا (بعض المتغيرات الموجودة) {
س = خطأ؛
elseFunctionCall();
}
لسوء الحظ، هذا ليس هو الحال. والواقع أنه يعادل:
كما ستلاحظ، لا يمكن لأي قدر من المسافة البادئة الفاخرة أن تحل محل الأقواس الفاخرة. وفي جميع الأحوال يرجى كتابة الأقواس المتعرجة الواضحة والفواصل المنقوطة النهائية. يمكن حذفه في بعض الأحيان عندما يكون هناك سطر واحد فقط، على الرغم من أن هذا غير مستحسن للغاية:
إذا (2 + 2 === 4) يُرجع "أحسنت"؛
فكر أكثر في المستقبل لنفترض أنك تحتاج إلى إضافة المزيد من الأوامر إلى بيان if هذا في عملية التطوير المستقبلية؟ ألا يجب عليك إضافة قوسين إذن؟
إذا (بعض المتغيرات الموجودة) {
س = خطأ؛
}
elseFunctionCall();