1. المتغيرات
متغيرات ecmascript هي متغيرات فضفاضة. ما يسمى المتغيرات فضفاضة يعني أن الاسم المتغير يمكن أن يحتفظ بأي نوع من البيانات. كل متغير هو مجرد عنصر نائب لتوفير القيمة.
التعريف: var firstdemo ؛
2. نطاق المتغيرات
2.1 المفهوم الأساسي
استخدم VAR لتحديد المتغيرات: تحديد المتغيرات المحلية التي تحدد نطاق المتغير. هذه الطريقة لتحديد المتغيرات هي أيضًا إعلان صريح.
إذا كنت لا تفهم هذا ، فيمكنك إلقاء نظرة على المثال البسيط والخام التالي:
نسخة الكود كما يلي:
امتحان()؛
اختبار الوظيفة () {
var firstdemo = "hello" ؛ // تحديد المتغيرات المحلية
تنبيه (firstdemo) ؛ // مرحبا
}
امتحان()؛
اختبار الوظيفة () {
var firstdemo = "hello" ؛ // تحديد المتغير المحلي firstdemo
}
التنبيه (FirstDemo) ؛ // الإبلاغ عن خطأ ، لم يتم تعريف FirstDemo
من مثالين أعلاه ، إذا تم تعريف متغير باستخدام VAR في دالة ، فسيتم تدمير المتغير بعد خروج الوظيفة.
حذف VAR لتحديد المتغيرات: طالما أن الوظيفة التي تحدد المتغير تسمى مرة واحدة ، يمكن الوصول إلى المتغير على مستوى العالم. هذه الطريقة لتحديد المتغيرات هي أيضًا إعلان ضمني
نسخة الكود كما يلي:
<script type = "text/javaScript">
امتحان()؛
تنبيه (FirstDemo) ؛ //مرحبًا
اختبار الوظيفة () {
FirstDemo = "Hello" ؛
}
</script>
النصائح: يتم بالفعل تجميع المتغير المعلن بشكل صريح في كائن الاتصال في precompilation (على سبيل المثال ، var t = 1 ؛ var t = 1 عند توسيع نطاقه ؛ t = 1 عند تفسيره ؛) على عكس المتغيرات المعلنة ضمناً التي يتم تعريفها على أنها متغيرات عالمية فقط عند تفسيرها.
يمكن أن يساعدنا اكتشاف نطاق المتغيرات في التفكير في كيفية إعلان المتغيرات بشكل معقول ، مما لا يقلل فقط من النفقات العامة للذاكرة غير الضرورية ، ولكنه يتجنب أيضًا إلى حد كبير المشكلة الناتجة عن التعاريف المتكررة للمتغيرات والكتابة فوق المتغيرات المحددة مسبقًا.
2.2 تحليل النطاق
نسخة الكود كما يلي:
<script type = "text/javaScript">
وظيفة وظيفية (S) {
document.writeln (s)
}
var i = 0 ؛ // تحديد المتغير العالمي
اختبار الوظيفة () {
وظيفي (I) ؛
وظيفة innerfunction () {
var i = 1 ؛ // تحديد المتغيرات المحلية
وظيفي (I) ؛
}
innerfunction () ؛
وظيفي (I) ؛
}
امتحان()؛
</script>
نتيجة الإخراج: 0 1 0
نسخة الكود كما يلي:
<script type = "text/javaScript">
وظيفة وظيفية (S) {
document.writeln (s)
}
var i = 0 ؛
اختبار الوظيفة () {
وظيفي (I) ؛
وظيفة innerfunction () {
وظيفي (I) ؛
var i = 1 ؛
وظيفي (I) ؛
}
innerfunction () ؛
وظيفي (I) ؛
}
امتحان()؛
</script>
نتيجة الإخراج:
A ، 0 0 1 0
ب ، 0 غير محدد 1 0
C ، 0 خطأ أنا غير محدد
يمكنك تخمين أي واحد هو النتيجة ، وسيتم شرح السبب بالتفصيل في الرسالة.
ما سبق هو كل شيء عن هذا المقال. ببساطة ، فإن نطاق المتغيرات في أي لغة برمجة هو تفاصيل مهمة للغاية. نطاق المتغيرات في JS أكثر حرية نسبيًا من اللغات مثل Java و C. ميزة كبيرة هي أن متغيرات JS ليس لها نطاق على مستوى الكتلة ، والمتغيرات في الوظائف صالحة في الوظيفة بأكملها.