online - javascript شرح




كيفية التعامل مع "غير محدد" في جافا سكريبت (2)

ممكن تكرار:
الكشف عن خاصية كائن غير محددة في JavaScript

من عينة جافا سكريبت أدناه

 try {
    if(jsVar) {
     proceed();
      }
 }catch(e){
      alert(e);
 }

تم الإعلان عن هذا jsVar وتهيئته في غرامة js أخرى.

المشكلة هي أن الكود يلقي خطأ غير معروف عندما يتم تنفيذ هذا الكود قبل تنفيذ الملف الآخر (حيث تم إعلانه وبدء تشغيله). هذا هو السبب في أنه محاط بمحاولة وقبض.

ما هي أفضل طريقة للتعامل مع هذا الخطأ غير المحدد من تجربة catch؟


في javascript ، ستتسبب القيم التالية في فشل الشرط وعدم تنفيذ العبارة الخاصة بها: null ، undefined ، false ، NaN ، الرقم 0 والسلسلة الفارغة ''.

على افتراض أن المتغير jsVar هو منطقي وأننا نريد استدعاء الأسلوب forward () عندما يكون jsVar صحيحًا ، يمكننا القيام بالتحقق التالي.

if (jsVar && jsVar == true)
    proceed();

يتحقق قصاصة الشفرة أعلاه أولاً من أنه قد تم تعريف jsVar ثم يتحقق من أن قيمتها صحيحة. سيتم استيفاء الشرط إذا تم استيفاء الشرطين.

إذا لم يكن jsVar منطقيًا ، فيمكننا استبدال الشيك المناسب بدلاً من jsVar == true في الكود أعلاه.


كما هو الحال غالبًا مع JavaScript ، هناك عدة طرق للقيام بذلك:

typeof foo !== 'undefined'
window.foo !== undefined
'foo' in window

يجب أن يكون الأولان متكافئين (طالما لم يتم foo بواسطة متغير محلي) ، في حين أن الأخير سيعود true إذا تم تعريف المتغير العام ، ولكن لم تتم تهيئته (أو تم ضبطه بشكل صريح على undefined ).





javascript