لماذا يؤدي إعلان متغير JavaScript في وحدة التحكم إلى "غير محدد"
عند الإعلان عن متغير في وحدة تحكم JavaScript باستخدام بناء الجملة var a;, فإنه يطبع "غير محدد". يمكن أن يكون هذا السلوك مفاجئًا وغالبًا ما يتم تناوله في منشورات Stack Overflow. ومع ذلك، تفشل هذه المناقشات في شرح سبب حدوث ذلك بشكل كامل.
يعد سلوك وحدة التحكم نتيجة مباشرة للطريقة التي تقوم بها JavaScript بتقييم التعبيرات. عند تقييم العبارة var a;، تعتبرها JavaScript تعبيرًا من تلقاء نفسها وترجع نتيجتها، والتي هي في الواقع "غير محددة".
والأمر الأكثر إثارة للحيرة هو لماذا تقوم وحدة التحكم أيضًا بطباعة "غير محدد" عند الإعلان عن متغير بقيمة أولية، مثل var a = 3. والمثير للدهشة أن جميع عبارات تعريف المتغيرات في JavaScript (سواء var أو function) تُرجع "غير محددة" إذا كان هناك عبارة أخرى ذات نتيجة "حقيقية".
على سبيل المثال :
> var a = 3; undefined > var a = 3; a = 4; 4 > var a = 3; a = 4; var a = 5; function f() {}; 4
هذا السلوك متجذر في بيان التقييم، والذي، وفقًا لمواصفات ECMAScript:
يرجع تقييم العبارة var a = 4 (عادي، فارغ، فارغ)، وهو ما يفي بمعايير إرجاع "غير محدد."
ومع ذلك، يحدد التقييم أيضًا أنه إذا كان قيمة إكمال البرنامج الذي تم تقييمه ليست فارغة، ثم يتم إرجاع قيمة العبارة الأخيرة. في المثال الأخير، a = 4 هي العبارة الأخيرة، لذلك تم إرجاع قيمتها (4).
باختصار، تطبع وحدة تحكم JavaScript "غير محددة" لإعلانات المتغيرات لأن هذه الإعلانات تُرجع "غير محددة" عند تقييمها على أنها التعبيرات. يمكن أن يكون هذا السلوك مربكًا، خاصة عند تعيين قيم أولية للمتغيرات، ولكنه ينبع من آليات التقييم الأساسية لتعبيرات وعبارات JavaScript.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3