"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية التحقق بشكل موثوق ما إذا كان متغير JavaScript غير محدد؟

كيفية التحقق بشكل موثوق ما إذا كان متغير JavaScript غير محدد؟

نشر في 2025-03-23
تصفح:743

How to Reliably Check if a JavaScript Variable is Undefined?

كيفية التحقق من عدم المحددة في javaScript

في حين أن هناك طرقًا متعددة لهذه المشكلة ، فإن كل طريقة لها مزايا وعيوب خاصة بها. يعد هذا النهج مفيدًا بشكل خاص إذا كنت ترغب في التحقق من وجود متغير بغض النظر عما إذا كان قد تم تعيين قيمة بشكل صريح.

// يتم تعريف myVariable }

The Typeof Operator

يقوم مشغل typeof بإرجاع نوع البيانات للمتغير. Undefined هو نوع بيانات صالح في JavaScript ، لذا فإن مقارنة متغير "غير محدد" مباشرة سيحدد بدقة حالته غير المحددة.

// myvariable غير محدد }
if ("myVariable" in window) {
  // myVariable is defined
}
من المهم أن نلاحظ أن هذه الطريقة يمكن أن تحدد فقط المتغيرات غير المحددة بشكل صارم ، ولم يتم تعيينها لقيم الفرق أو غيرها من القيم. من خلال إكراه متغير ضمنيًا على منطقية ، يمكنك الاستفادة من حقيقة أن غير المحددة هي قيمة falsy. ومع ذلك ، يمكن أن تؤدي هذه الطريقة إلى نتائج غير متوقعة إذا تم تعيين المتغير لقيم falsy الأخرى ، مثل 0 أو "".

if (! myVariable) { // myVariable غير محدد (أو لاغية ، 0 ، "" ، إلخ) }

مقارنة مع غير محدد
if ("myVariable" in window) {
  // myVariable is defined
}
مشابه للإكراه المنطقي ، ومقارنة متغير مباشرة مع غير المحدد يمكن أن يعمل ، لكنه غير موثوق به بطبيعته. كما يمكن كتابة أو إعادة تعيين غير محددة ، قد تؤدي هذه الطريقة إلى نتائج غير صحيحة. // قد يكون أو لا يتم تعريف myvariable }

معالجة الأخطاء

في بعض الحالات ، قد يكون من المناسب استخدام كتلة التجربة للتعامل مع الخطأ الذي سيتم طرحه إذا لم يتم تعريف المتغير. ومع ذلك ، يمكن أن يكون هذا النهج مرهقًا ويوصى به فقط لسيناريوهات محددة.

حاول { إذا (myVariable) { // يتم تعريف myVariable } } catch (err) { // myvariable غير محدد }
if ("myVariable" in window) {
  // myVariable is defined
}
الاستنتاج

عند التحقق من غير محدد في JavaScript ، تعتمد الطريقة الأنسب على المتطلبات المحددة للرمز. لتحديد ما إذا كان قد تم الإعلان عن متغير ، بغض النظر عن قيمته ، فإن المشغل هو الخيار الأكثر أمانًا. إذا كانت الفائدة تكمن بحتة في التمييز غير المحدد عن أنواع البيانات الأخرى ، فسيتم تفضيل مشغل typeof. الإكراه المنطقي والمقارنة المباشرة مع غير المحددة أقل موثوقية ويجب استخدامها بحذر.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3