Tamim Fahed نشر 29 يونيو 2021 أرسل تقرير نشر 29 يونيو 2021 لقد لاحظت في العديد من المشاريع كتابة الجملة "use strict" في أول ملفات الجافاسكريبت التابعة ل node.js ما الذي تقوم به هذه الجملة بالتحديد؟ وهل يمكن وضعها في أماكن أخرى غير السطر الأول من ملف الجافاسكريبت؟ 1 اقتباس
1 Sam Ahw نشر 29 يونيو 2021 أرسل تقرير نشر 29 يونيو 2021 لقد تم إحداث هذه الخاصية في ECMAScript النسخة الخامسة. ويتم إهمالها من قبل النسخ القديمة من الجافاسكريبت. ومن إحدى أهم مزاياها هو أنك لا تستطيع استخدام المتغيّرات التي لم يتم التصريح عنها، ولعلّها تساعد المبرمجين بعدم ارتكاب بعض الأخطاء وتسهّل الوصول إلى الأخطاء عند حدوثها. مثال: "use strict"; x = 3.14; // سيسبب خطأ لأنه لم يتم التصريح مسبقاً عن المتغيّر يجب أن تكون بالشكل التالي: "use strict"; let x = 3.14; في الوضع غير المقيد (أي عند عدم وضع use strict) ، ستكون المتغيرات والتي يمكن الوصول إليها داخل أي دالة عبارة عن مصفوفة مثل الكائن Object على سبيل المثال والذي يحتوي على جميع المعاملات التي يتم تمريرها له عادةً، ستكون هذه المعاملات الموجودة داخلها مراجع إلى نفس القيم المخزنة في تعريف الوظيفة. مثلاً عند تعريف دالة ما تحوي بارامتر واحد وليكن اسمه myArg، سنتمكّن من الوصول إلى هذا المتغير إما من خلال اسمه muArg أو من خلال المصفوفة arguments[0] وعندما نقوم بتغيّر قيمته من خلال هذه المصفوفة ستقوم أيضاً بتغيير قيمته التابعة للاسم نفسه: function myFunc(myArg) { console.log(`${myArg} -- ${arguments[0]}`); arguments[0] = 20; // نقوم هنا بتغيير قيمته من خلال مصفوفة المتغيرات console.log(`${myArg} -- ${arguments[0]}`); } test(10); سنلاحظ هنا أن النتيجة نفسها لكل من مصفوفة المتغيّرات، وأيضاً اسم المتغيّر أو reference: 10 -- 10 20 -- 20 أما إذا قمنا بكتابة use strict وأعدنا تنفيذ هذا التابع: 'use strict'; // قمنا هنا بإضافة use strict function myFunc(myArg) { console.log(`${myArg} -- ${arguments[0]}`); arguments[0] = 20; console.log(`${myArg} -- ${arguments[0]}`); } test(10); سنلاحظ أنه حتى لو غيّرنا قيمة المتغيّر من خلال المصفوفة، فإن ذلك لن يؤثر فعلياً على قيمة المتغيّر نفسه المحجوز في الذاكرة. وعندما نقوم باستدعائه من خلال اسم المتغيّر أو reference سنلاحظ أن قيمته لم تتغيّر واحتفظت بالقيمة نفسها، فيكون الناتج: 10 -- 10 10 -- 20 ^^ 1 اقتباس
0 عبدالباسط ابراهيم نشر 30 يونيو 2021 أرسل تقرير نشر 30 يونيو 2021 (معدل) تعتبر ال "use strict" من الإضافات القوية للغة حيث تمنع المطورين من الوقوع في الأخطاء وتعمل أيضاً بكشف الأخطاء ال silent التي لا يمكن إكتشافها فتقوم بمنع الأخطاء التالية تمنع تكرار ال keys في الكائنات var zombie = { eyeLeft : 0, eyeRight: 1, } تمنع تعريف المتغير بدون var وما إلى ذلك Y = 5; تمنع تكرار ال arguments function run(fromWhom, fromWhom){} أيضاً يقوم الوضع strict بتحسين الأداء الخاص بالبرنامج أو الكود مثلاً عن طريق عمل throw لل silent errors أيضاً يقوم بإصلاح بعض الأخطاء التي تمنع محرك v8 من عمل optimization تم التعديل في 30 يونيو 2021 بواسطة عبدالباسط ابراهيم إضافة الكود اقتباس
السؤال
Tamim Fahed
لقد لاحظت في العديد من المشاريع كتابة الجملة "use strict" في أول ملفات الجافاسكريبت التابعة ل node.js
ما الذي تقوم به هذه الجملة بالتحديد؟ وهل يمكن وضعها في أماكن أخرى غير السطر الأول من ملف الجافاسكريبت؟
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.