1. نطاق جافا سكريبت المتغير
في جافا سكريبت، تنقسم المتغيرات بشكل أساسي إلى نوعين: المتغيرات المحلية والمتغيرات العامة، والنطاقات المقابلة لها أيضًا نطاق محلي ونطاق عالمي.
1 المتغيرات المحلية والنطاق
يتم بشكل عام تعريف المتغيرات المحلية واستخدامها داخل نص الدالة:
وظيفة func(){ var i=12;// المتغيرات المحلية...}يتم استخدام نطاق المتغير المحلي داخل نص الوظيفة التي تم الإعلان عن المتغير فيها.
تتم تهيئة دورة الإعلان عن المتغيرات المحلية عند استدعاء الوظيفة وتنفيذها، ويتم إتلافها بعد اكتمال استدعاء الوظيفة.
2. المتغيرات العالمية والنطاق
يتم الإعلان عن المتغيرات العامة عمومًا خارج نص الوظيفة:
var i=12;//وظيفة المتغير العالمي func(){......}يوجد أيضًا متغير يتم استخدامه مباشرة بدون إعلان، ويتم تعيينه افتراضيًا على متغير عام:
function func(){ i=12;// لم يتم الإعلان عنه (تم الإعلان عنه باستخدام الكلمة الأساسية var)، والإعدادات الافتراضية هي المتغير العام}يمكن استخدام المتغيرات العامة في جميع البرامج النصية والأساليب في الصفحة الحالية، ويكون نطاقها في البرنامج النصي للصفحة الحالية.
يتم إنشاء دورة الإعلان عن المتغيرات العامة عند تهيئة المتغير وتدميره عند إغلاق الصفحة الحالية.
2. نوع الكلمة الرئيسية
تُستخدم الكلمة الأساسية typeof بشكل أساسي لاكتشاف نوع بيانات المتغيرات. أنواع البيانات الرئيسية في JavaScript هي السلسلة والرقم والمنطقية والكائن وما إلى ذلك.
console.log(typeof 'str');//stringconsole.log(typeof 23);//numberconsole.log(typeof false);//booleanconsole.log(typeof [1,3,12]);//objectconsole. log(typeof {name:'jack',age:12});//objectconsole.log(typeof new Date());//objectملاحظة: المصفوفات وكائنات json في js كلها من نوع بيانات الكائن.
3. لاغية وغير محددة
غالبًا ما تظهر القيمة Null وغير المحددة في JavaScript، للإشارة إلى أن قيمة المتغير فارغة أو أن المتغير غير محدد. عند التعبير عن القيم، يمكن التعبير عنها كقيم فارغة، لكنها لا تزال مختلفة من حيث أنواع البيانات.
console.log(typeof null);//objectvar persion = null;console.log(persion);//nullconsole.log(typeof undef);//undefvar persion2;console.log(persion2);//undef
نوع البيانات الفارغة هو كائن، ونوع البيانات غير محدد غير محدد.
عندما يتم الإعلان عن متغير، تكون القيمة فارغة، وتكون قيمة المتغير فارغة؛ عندما يتم الإعلان عن متغير فقط، بدون تعيين، تكون القيمة غير محددة.
دعونا نلقي نظرة على مجموعة أخرى من المقارنات:
console.log(null==undef);//القيم الحقيقية متساوية console.log(null===undef);//الأنواع الخاطئة ليست متساوية
يمكن أن نرى أنه عندما تمثل القيم الفارغة وغير المحددة، فإنهما يمثلان قيمًا فارغة؛ ونوع البيانات الخالي هو كائن، ونوع البيانات غير المحدد غير محدد. القيم التي تم الإعلان عنها دون التهيئة غير محددة.
ما يلي هو ملحق
الوضع الأول
<script> var i; // المتغيرات العامة // اسم الطريقة هو تسمية الجمل // المتغيرات في الطريقة هي متغيرات محلية function sayHello(){ var x=100; // الإخراج 100 تنبيه (x)؛ // تم الإبلاغ عن خطأ لأن x متغير محلي ولا يمكن الوصول إليه</script>الوضع الثاني
<script>function sayHello(){ var x=100; داخل الطريقة، لا يوجد نطاق على مستوى الكتلة، وهو أمر غير ممكن في C#! ! ! for(var i=0;i<2;i++){ تنبيه(i) } // المتغير المحدد في حلقة for هو نطاق مستوى الكتلة تنبيه(i); // لأن i هو متغير محلي، 2 هو الإخراج } sayHello();</script>ملاحظة: لا يلزم الإعلان عن المتغيرات باستخدام var قبل الاستخدام، حيث سيتم اعتبار هذه المتغيرات "متغيرات عامة"، ولكن نادرًا ما يتم استخدامها بهذه الطريقة.
حول غير محدد وفارغة
في الحالات التالية، تكون قيمة المتغير غير محددة.
1. إذا تم تعريف متغير ولكن لم يتم تعيين قيمة له، فإن قيمة المتغير تكون غير محددة.
2. الطريقة المطلوبة ليس لها قيمة إرجاع، والقيمة التي يتم إرجاعها غير محددة.
3. في حالة عدم وجود قيمة السمة للكائن، تكون القيمة المرجعة غير محددة، مثل: document.ddd
مثال 1:
var xx;var yy=null;if(xx==yy){ تنبيه('يساوي');}else{ تنبيه('غير متساوي');}نتائج الإخراج متساوية لأنه عند تنفيذ حكم if، سيحكم المتصفح على قيم xx و yy نظرًا لعدم وجود قيم محددة لكل منهما، فهي تعتبر خاطئة.
إذا تم استبدال حكم if بـ ===[علامة المساواة]، فلن يكون الناتج متساويًا! لأن === يعني أن أنواع البيانات وقيم xx وyy يجب أن تكون هي نفسها!
مثال 2:
var xx=10var yy='10';if(xx==yy){ تنبيه('يساوي');}else{ تنبيه('غير متساوي');}الإخراج يساوي إذا تم تغييره إلى ===، الإخراج غير متساو.
مثال 3:
var n='10';switch(n){ case 10: تنبيه('number'); استراحة;سلسلة الإخراج
الحكم في التبديل يجب أن يأخذ في الاعتبار النوع
خلاصة: الحكم في إذا هو الحكم على القيمة، بغض النظر عن نوعها.