`strict mode` في JavaScript
توضح هذه المقالة strict mode
في JavaScript۔
YouTube Video
strict mode
في JavaScript
في JavaScript، يعد strict mode
ميزة تم تقديمها في ECMAScript 5 (ES5) لجعل الكود أكثر أمانًا ومنع الأخطاء۔ باستخدام strict mode، يتم تعطيل بعض التركيبات المرنة والميزات التي قد تكون محفوفة بالمخاطر، ويتم فرض فحوصات صارمة للأخطاء۔ يسمح ذلك للمطورين بتجنب السلوك غير المتوقع وكتابة كود أكثر قوة وأداءً عاليًا۔
تفعيل strict mode
لتمكين وضع صارم
، أضف التوجيه التالي في بداية الكود الخاص بك۔
1"use strict";
يمكن تطبيق هذا الإعلان على النص بأكمله أو على أساس كل وظيفة۔ على سبيل المثال، إذا تم تطبيقه على البرنامج النصي بالكامل، يمكنك كتابته كما يلي:۔
1"use strict";
2
3function example() {
4 // Strict mode is applied
5}
إذا تم تطبيقه لكل وظيفة، يمكنك كتابته كما يلي:۔
1function example() {
2 "use strict";
3 // Strict mode is applied only within this function
4}
strict mode
ينطبق على أساس النطاق، لذلك يمكن تفعيله أيضًا داخل وظيفة.۔ أيضًا، نظرًا لأن وضع 'strict mode' مفعّل افتراضيًا في الوحدات (modules)، فلا تحتاج إلى تفعيله أو التصريح به بشكل منفصل داخل الوحدة.۔
الميزات الرئيسية والفروقات لـ strict mode
استخدام strict mode
يغير بعض السلوكيات الافتراضية في JavaScript.۔ فيما يلي الأمثلة الرئيسية۔
حظر المتغيرات العالمية الضمنية
في JavaScript العادي، يؤدي إغفال إعلان المتغيرات إلى تعريفها كمتغيرات عامة تلقائيًا، ولكن في strict mode
يؤدي ذلك إلى حدوث خطأ.۔
1"use strict";
2
3x = 10; // Error: x is not defined
يجب دائمًا إعلان المتغيرات باستخدام var
أو let
أو const
۔
قيود على استخدام الكلمات المحجوزة
لا يمكن استخدام الكلمات المحجوزة المستقبلية المحتملة في JavaScript (مثل: implements
، interface
، package
، وما إلى ذلك) كأسماء للمتغيرات أو الوظائف في strict mode
.۔
1"use strict";
2
3var package = "strict mode"; // Error: Unexpected strict mode reserved word
تغييرات في سلوك this
في الوضع العادي، تشير الكلمة this
داخل الوظيفة إلى الكائن العام (مثل: window
في المتصفحات)، لكن في strict mode
، تكون this
غير معرفة undefined
.۔
1"use strict";
2
3function example() {
4 console.log(this); // undefined
5}
6
7example();
يساعد ذلك في منع الأخطاء الناتجة عن الاستخدام غير الصحيح لـ this
۔
حظر حذف الخصائص غير القابلة للحذف
في الوضع العادي، يتم تجاهل محاولة حذف خصائص الكائن غير القابلة للحذف دون وجود خطأ، لكن في strict mode
، يؤدي ذلك إلى خطأ.۔
1"use strict";
2
3var obj = Object.freeze({name: "John"});
4delete obj.name; // Error: Cannot delete property 'name'
حظر تكرار أسماء المعلمات
في الوضع العادي، يُسمح بتعريف المتغيرات أو المعاملات بنفس الاسم عدة مرات، ولكن في strict mode
يؤدي ذلك إلى حدوث خطأ.۔
1"use strict";
2
3function example(a, a) {
4 // Error: Duplicate parameter name not allowed in this context
5}
حظر استخدام العبارة with
يمكن أن تقلل عبارة with
من وضوح الكود، وهي ممنوعة في strict mode
.۔
1"use strict";
2
3with (Math) {
4 // Error: Strict mode code may not include a with statement
5}
مزايا strict mode
strict mode
يحسن أمان وكفاءة الكود بعدة طرق.۔
تحسين اكتشاف الأخطاء
في strict mode
يتم اكتشاف الأخطاء التي يتم التغاضي عنها في الوضع العادي، مما يتيح للمطورين اكتشاف العيوب المحتملة في وقت مبكر.۔ على سبيل المثال، يمنع إنشاء المتغيرات العامة غير المقصودة وسوء استخدام الكلمات المحجوزة.۔
تحسين الأداء
في strict mode
، يمكن لمحركات JavaScript تحسين الكود بشكل أكثر كفاءة.۔ وبالتالي، قد تتحسن سرعة التنفيذ.۔
زيادة أمان الشيفرة
يصبح التعامل مع this
أكثر صرامة، مما يمنع الوصول إلى الكائنات العامة غير الضرورية، وبالتالي يعزز أمان الشيفرة.۔ بالإضافة إلى ذلك، فإن التقييد على استخدام الكلمات المحجوزة يمنع التعارضات في المستقبل مع الكلمات المفتاحية.۔
التوافق والاعتبارات
تم تقديم strict mode
في ECMAScript 5، وهو غير مدعوم في المتصفحات التي تم إصدارها قبل ذلك.۔ ومع ذلك، فإن تفعيل strict mode
يتم تجاهله ببساطة من قبل المتصفحات غير المدعومة دون تعطيل السكربت.۔ لذلك، يمكن استخدامه عادة بشكل آمن.۔
عند إدخال strict mode
إلى مشروع كبير قائم بالفعل، يكون الاختبار الشامل أمرًا حيويًا لتجنب الأخطاء غير المتوقعة.۔
الخاتمة
strict mode
في JavaScript هو ميزة مفيدة للغاية لتحسين جودة الكود.۔ على وجه الخصوص، بالنسبة للمشاريع واسعة النطاق أو التطوير الجماعي، يُوصى بقوة باستخدام الوضع الصارم لتجنب الأخطاء والمشاكل غير المتوقعة، ولتعزيز قابلية قراءة الشيفرة وسهولة صيانتها.۔
فهم وتطبيق strict mode
بشكل صحيح يساعد في تجنب مشاكل JavaScript ويدعم تطويرًا أكثر أمانًا وكفاءة.۔
يمكنك متابعة المقالة أعلاه باستخدام Visual Studio Code على قناتنا على YouTube.۔ يرجى التحقق من القناة على YouTube أيضًا.۔