في JavaScript، تقييم القيمة في سياق منطقي - كما هو الحال في إذا كانت العبارات أو المقارنات المنطقية — يمكن أن تؤدي إلى نتائج غير متوقعة. يرجع هذا السلوك إلى آلية إكراه الكتابة في JavaScript.
تقوم JavaScript بكتابة قيمها بشكل فضفاض، وعندما يتم استخدام سلسلة أو قيمة رقمية في سياق منطقي، فإنها تخضع لإكراه الكتابة لتحويلها إلى قيمة منطقية. في هذا التحويل، يتم تقييم السلاسل غير الفارغة والأرقام غير الصفرية على أنها صحيحة، بينما يتم تقييم السلاسل الفارغة والأرقام الصفرية على أنها خطأ.
لذلك، عند مقارنة "0" بخطأ باستخدام == أو === ، فإنه يُرجع صحيحًا لأن النوع القسري يحول كلاً من "0" (سلسلة غير فارغة) وخطأ (قيمة تشبه الصفر) إلى صحيح.
ومع ذلك، عند استخدام عبارة if، يتم تقييم "0" وحده إلى صحيح. وذلك لأنه إذا كانت العبارات تستخدم داخليًا قيمة منطقية قسرية، والتي تُرجع صحيحًا للسلاسل غير الفارغة.
لتجنب أي غموض، فمن المستحسن استخدام عامل المساواة الصارمة === عند مقارنة القيم الأولية، كما فهو يقوم بإجراء مقارنة دون إكراه النوع. يضمن ذلك تقييم "0" بشكل صحيح على أنه خطأ عند الضرورة.
ارجع إلى الجداول المرفقة للحصول على تمثيل موجز لسلوك JavaScript الصادق/الخاطئ لأنواع البيانات المختلفة. تذكر أنه لإجراء مقارنات المساواة الحقيقية، اختر دائمًا ===.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3