اذهب إلى المحتوى

السؤال

Recommended Posts

  • 0
نشر

الuse strict تجعل البرنامج يعمل في وضعية الstrict

إذا ماهي وضعية الStrict ؟

وضعية الstrict تفرض عليك بعض القيود عند كتابة الشيفرة البرمجية , تلك القيود مهمتها أن تجعل الشيفرة السيئة المقبولة "مرفوضة" ,بمعنى أن بعض العادات السيئة التي كان بإمكانك القيام بها عند كتابة شيفرة الجافاسكريبت لن يعد بإمكانك القيام بها , أمثلة من تلك العادات :

  1. لا يمكنك الإشارة إلى متغير أو كائن بدون أن تقم بتعريفه مسبقاً فمثلاً 
    "use strict";
    name="sharaf" ;

    هذه الشفرة في المسبق كانت مقبولة ولن تتسبب بأخطاء, لكن بعد تفعيل وضعية الstrict او(الوضعية الصارمة) سيتسبب هذه السطر بخطأ لأنك قمت بالإشارة إلى المتغير name بدون أن تقم بتعريفه

  2. لا يمكنك حذف كائن أو متغير 

    let name = "sharaf";
    delete name;

    هذه الشفرة تعمل بدون الوضعية الصارمة ولكن بعد تفعيل الوضعية الصارمة سيحدث خطأ لأنك حاولت أن تحذف المتغير name وهذا لا يعُد مقبولاً في الوضعية الصارمة

  3. لا يمكنك إستخدام النظام الثماني

    let octa_number = 010;

    هذه الشفرة ستتسبب في خطأ عند تفعيل الوضعية الصارمة لأن القيمة 010 تعد في النظام الثماني ليس العشري

  4. لا يمكنك الكتابة إلى كائن قمت بتعريفه مسبقاً بأنه مُعد للقراءة فقط

    "use strict";
    const car = {};
    Object.defineProperty(car, "name", {value:"bmw", writable:false});
    
    car.name ="kia"; 

    تلك الشفرة أيضا ستتسبب بخطأ عند إستخدام الوضعية الصارمة بسبب محاولتك للتعديل على كائن مُعد للقراءة فقط

ويوجد العديد من القواعد الأخرى ,حتى لا أقوم بتشتيتك سأترك لك رابط ينص على القواعد جميعها

اما عن فائدة هذه الوضعية فيمكن تلخيصها في الآتي:

  1. تقوم بإزالة ما يسمى بالأخطاء الصامتة, وهي تلك الأخطاء التي قد تسبب مشاكل في الشفرة مستقبلاً ولكن لا توقف تنفيذه فبالتالي تتحول الي bugs
  2. تجبرك على كتابة شفرة نظيفة منظمة قابلة للقراءة بسهولة
  3. تحسن من أداء الشفرة حيث أن عمليات التحسين "optimizations" يستطيع المحرك أن يحددها ويقم بها بسهولة أكبر عند تفعيل هذه الوضعية

وها هو رابط يحتوي على قواعد الوضع الصارم https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode

وتلك مقالة من اكاديمية حسوب تشرح الوضع الصارم 

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...