فيما يتعلق بـ JavaScript ، فإن أول مفهوم أكثر أهمية هو المتغيرات ، وآلية العمل للمتغيرات هي الميزة الأساسية لـ JavaScript. في الواقع ، المتغيرات هي نوع من المعرف. ستقدم هذه المقالة المتغيرات والمعرفات بالتفصيل
تعريف
المعرف هو اسم يستخدم لتسمية المتغيرات والوظائف والخصائص والمعلمات ، أو لاستخدامها كعلامة لمواقع القفز في بعض عبارات الحلقة.
// متغير var identifier = 123 ؛ // properties (كائن جديد) .IndIntifier = 'test' ؛ // function and parameters function functioname (Identifier1) {} ؛ }}في الحياة اليومية ، يتم إصلاح بعض الأشياء وبعض الأشياء تتغير. على سبيل المثال ، يتم إصلاح اسم الشخص وعيد ميلاده ، لكن مزاجه وعمره سيتغير مع مرور الوقت. يطلق الناس على الأشياء التي تغير المتغيرات
عندما يحتاج البرنامج إلى توفير القيمة للاستخدام في المستقبل ، يتم تعيينه لمتغير. المتغير هو عنصر نائب لتوفير القيم. يمكنك الحصول على مرجع إلى القيمة من خلال الاسم المتغير.
قواعد تسمية
في مقالة "هيكل المعجم" ، نقدم أن JavaScript هي لغة حساسة للحالة. مثل أي لغة برمجة أخرى ، تحتفظ JavaScript ببعض المعرفات لنفسها ، ولا يمكن استخدام الكلمات المحجوزة كمعرفات عادية.
[ملاحظة] تتضمن الكلمات المحجوزة كلمات رئيسية ، كلمات محفوظة في المستقبل ، حرفيات فارغة وحرفية منطقية
محجوز :: كلمات رئيسية مستقبلية
يُسمح لاسم معرف JavaScript باحتواء رسائل وأرقام وعلامات الدولار والرسومات السفلية (ولكن لا يُسمح بالحرف الأول بأن يكون رقمًا)
// عرض خطأ عرض 6num // لا يمكن استخدام مبلغ ٪ number في البداية // لا يمكن استخدام الرموز الخاصة باستثناء (_ $) في البداية ، مثل (٪ + /إلخ
يتيح JavaScript الحروف والأرقام (بما في ذلك الصينية) في مجموعة أحرف Unicode بأكملها في المعرف. لذلك ، يمكن للمبرمجين أيضًا استخدام الرموز غير الإنجليزية أو الرموز الرياضية لكتابة المعرفات
var test text = 'test' ؛
[ملاحظة] لقابلية النقل وسهولة الكتابة ، عادة لا نستخدم أحرف ASCII أو Unicode الموسعة
عادةً ما يكون تنسيق الجمال هو التنسيق المفضل لتسمية المعرف ، والحرف الأول هو أحرف صغيرة ، والحرف الأول من كل كلمة متبقية هي حقيبة كبيرة.
var mymoodtoday = 'Happy' ؛
بالنسبة لأنواع البيانات المختلفة ، لدى JavaScript قواعد تسمية المعرفات التقليدية
اكتب premix مثال صفيف (صفيف) a items boolean (boolean) b biscomplete رقم النقطة العائمة (float) وظيفة fprice (وظيفة) fn fnhandler integer (integer) iiitemcount object (object) o odiv1 التعبير العادي (regexp) re reemailcheck
إعلان متغير
إفادة
في JavaScript ، يجب أن تعلن (إعلان) قبل استخدام متغير. يتم الإعلان عن المتغير باستخدام الكلمة الرئيسية VAR (اختصار المتغير).
var i ؛ var sum ؛
يمكنك أيضًا إعلان متغيرات متعددة من خلال كلمة رئيسية VAR
var i ، sum ؛
تكليف
يسمى تشغيل القيم بتخزين المتغيرات. بعد تعيين متغير ، نقول أن المتغير يحتوي على هذه القيمة
تسمى عملية تعيين متغير لأول مرة التهيئة
يمكننا كتابة المهمة الأولية للمتغيرات مع الإعلان المتغير
var message = 'hello' ؛ var i = 0 ، j = 0 ، k = 0 ؛
إذا لم يتم تحديد المتغير في بيان إعلان VAR ، على الرغم من إعلان المتغير ، فإن قيمته الأولية غير محددة قبل حفظ قيمة لها
يمكن أيضًا استخدام عبارات VAR في الحلقات والحلقات ، والتي يمكن أن تعلن بشكل أكبر متغيرات الحلقة المستخدمة في بناء جملة الحلقة
لـ (var i = 0 ؛ i <10 ؛ i ++) console.log (i) ؛
يمكن تعيين المتغيرات قيمًا عند إعلانها ، ولكن لا يمكن أن تكون هناك عمليات أخرى ، مثل += ، -= ، إلخ.
var a = 2 ؛ // صحيح var a+= 2 ؛ // هو خطأ var a = 2 ++ ؛ // خاطئ ، ++ يمكن استخدامها فقط للمتغيرات ، وليس الثوابت
كرر البيان
إنه قانوني وغير ضار لإعلان المتغيرات بشكل متكرر باستخدام عبارات VAR. إذا تم تكرار الإعلان مع عمليات المهمة ، فإنه يعادل إعادة تعيين القيمة.
بيان مفقود
إذا حاولت قراءة قيمة المتغير الذي لم يتم الإعلان عنه ، فسيقوم JavaScript بالإبلاغ عن خطأ
يسمح JavaScript بإعلانات حذفت ، أي ، يتم تعيين قيم مباشرة للمتغيرات دون إعلانات مسبقة ، وستعلن عملية المهمة تلقائيًا المتغير.
ومع ذلك ، في الوضع الصارم ECMASSCRIPT5 ، فإن تعيين قيمة إلى متغير غير معلن سيؤدي إلى خطأ
<script> 'استخدم صارمًا' ؛ a = 5 ؛ console.log (a) ؛ </script>
الخصائص المتغيرة
متغيرات JavaScript هي أنواع ضعيفة (تسمى أيضًا أنواع فضفاضة) ، ويتم استخدام ما يسمى الأنواع السائبة لحفظ أي نوع من البيانات.
تصنيف لغة البرمجة: اللغة المكتوبة الديناميكية واللغة المكتوبة الثابتة. تشير اللغة الديناميكية المكتوبة إلى لغة تقوم فقط بفحص نوع البيانات أثناء العملية. وهذا يعني ، عند البرمجة بلغة مطبوعة ديناميكية ، لا تحتاج إلى تحديد نوع بيانات لأي متغير. ستقوم اللغة بتسجيل نوع البيانات داخليًا عندما تقوم المرة الأولى التي تقوم بتعيين قيمة لمتغير. JavaScript هي ممثل اللغات المكتوبة ديناميكيًا.
في JavaScript ، يمكنك تعديل نوع القيمة مع تعديل القيمة.
رسالة var = 'hi' ؛ رسالة = 100 ؛ // صالحة ، ولكن غير موصى بها
هناك نقطتان لتلخيص خصائص أنواع المتغيرات الفضفاضة: الأول هو أنك لا تحتاج إلى تحديد أنواع البيانات للمتغيرات عند الإعلان ؛ والآخر هو أنه يمكنك تعديل أنواع البيانات عند تعيين القيم.
نطاق متغير
نطاق المتغير ، المعروف أيضًا باسم سياق التنفيذ ، هو المجال الذي يحدد هذا المتغير في رمز مصدر البرنامج.
تنقسم النطاقات إلى نطاق عالمي ونطاق الوظيفة (تسمى أيضًا النطاق المحلي)
النطاق العالمي هو بيئة التنفيذ الأكثر طرفية. في متصفح الويب ، تعتبر بيئة التنفيذ العالمية كائن نافذة. يتم إنشاء جميع المتغيرات والوظائف العالمية كخصائص وطرق كائنات النوافذ. المتغيرات العالمية لها نطاقات عالمية ويتم تعريفها في أي مكان في رمز JavaScript. لن يتم تدمير النطاق العالمي حتى يخرج التطبيق ، على سبيل المثال ، يغلق صفحة ويب أو متصفح.
يتم تعريف المتغيرات المعلنة داخل وظيفة فقط في جسم الوظيفة. إنها متغيرات محلية ونطاقها محلي. معلمات الوظائف هي أيضًا متغيرات محلية ، ويتم تعريفها فقط في جسم الوظيفة. بعد تنفيذ جميع الكود في نطاق الوظيفة ، يتم تدمير النطاق ، ويتم تدمير جميع المتغيرات وتعريفات الوظائف المخزنة فيه.
اختبار الوظيفة () {var message = 'hi' ؛} test () ؛ Alert (message) ؛ // errorإذا تم حذف مشغل VAR ، يتم إنشاء متغير عالمي
اختبار الوظيفة () {message = 'hi' ؛} test () ؛ Alert (message) ؛ // 'hi'على الرغم من أن حذف مشغل VAR يمكن أن يحدد المتغيرات العالمية ، إلا أنه لا ينصح به. من الصعب الحفاظ على المتغيرات العالمية المحددة في النطاق المحلي ، وإذا تم تجاهل مشغل VAR عن عمد ، فسيؤدي ذلك أيضًا إلى ارتباك غير ضروري لأنه لن يتم تعريف المتغير المقابل على الفور. سيؤدي تعيين القيم للمتغيرات غير المعلنة في الوضع الصارم إلى إلقاء خطأ مرجع
في هيئة الوظيفة ، تكون أولوية المتغيرات المحلية أعلى من متغيرات عالمية مع نفس الاسم. إذا تم إعلان متغير محلي في الوظيفة أو المتغيرات المتغيرة والعالمية في معلمة الوظيفة ، يتم تغطية المتغير العالمي بواسطة المتغير المحلي.
var scope = 'global' ؛ function checkscope () {var scope = 'local' ؛ نطاق الإرجاع ؛} ؛ checkscope () ؛ // "محلي"ترقية البيان (رفع)
نطاق مستوى الكتلة
يعني نطاق مستوى الكتلة أن كل قطعة من الكود في أقواس مجعد لها نطاق خاص بها ، في حين أن JavaScript ليس لديه نطاق على مستوى الكتلة. JavaScript فقط نطاق الوظيفة: يتم تعريف المتغيرات في هيئة الوظيفة التي تعلن عنها وأي هيئة وظيفية متداخلة في هذا الجسم.
هذا يعني أن المتغيرات متوفرة قبل إعلانها. تسمى هذه الميزة من JavaScript بشكل غير رسمي. جميع المتغيرات المعلنة في وظائف JavaScript (لا توجد مهام متضمنة) يتم تطويرها إلى أعلى جسم الوظيفة.
[ملاحظة] في الواقع ، بالإضافة إلى الترويج المتغير ، يتم تعزيز الوظائف أيضًا ، وستكون هناك مقدمات مفصلة لقسم الوظائف
var scope = 'global' ؛ function f () {console.log (scope) ؛ // undefined var scope = 'local' ؛ console.log (Scope) ؛ // 'Local'} // بعد الترويج للإعلان المتغير ، فإنه يعادل الكود التالي var scope = 'global' ؛ function f () {var scope ؛ console.log (Scope) ؛ // undefined scope = 'local' ؛ console.log (Scope) ؛ // 'Local'}لا يوجد نطاق على مستوى الكتلة في JavaScript ، لذلك وضع بعض المبرمجين إعلانات متغيرة عن عمد في الجزء العلوي من جسم الوظيفة. يعكس رمز المصدر هذا بوضوح النطاق المتغير الحقيقي.
المتغيرات السمة
عند إعلان متغير جافا سكريبت العالمي ، فإنه يحدد بالفعل خاصية نافذة الكائن العالمي
عندما يتم الإعلان عن متغير باستخدام VAR ، فإن المتغير الذي تم إنشاؤه غير قابل للتكوين ، مما يعني أنه لا يمكن حذف المتغير من خلال مشغل الحذف
var truevar = 1 ؛ console.log (truevar ، window.truevar) ؛ // 1 1delete truevar ؛ // falseconsole.log (truevar ، window.truevar) ؛ // 1 1
إذا لم تستخدم وضعًا صارمًا وتعيين قيمة لمتغير غير معلن ، فسيقوم JavaScript تلقائيًا بإنشاء متغير عالمي. المتغيرات التي تم إنشاؤها بهذه الطريقة هي خصائص طبيعية قابلة للتكوين للكائن العالمي ويمكنها حذفها
window.fakevar1 = 10 ؛ console.log (fakevar1 ، window.fakevar1) ؛ // 10 10 this.fakevar2 = 20 ؛ console.log (fakevar2 ، window.fakevar2) ؛ // 20 20fakevar = 30 ؛ console.log (fakevar ، window.fakevar) ؛ // 30 30delete window.fakevar1 ؛ // truedelete this.fakevar2 ؛ // truedelete fakevar ؛ // trueconsole.log (fakevar1 ، window.fakevar1) ؛ // report error error console.log (fadvar2 ، window.fakevar2) ؛ // الإبلاغ عن console.log (fadevar ، window.fakevar) ؛ // الإبلاغ عن خطأ
المتغيرات العالمية JavaScript هي خصائص للكائنات العالمية ، والتي تعتبر إلزامية في ECMASCRIPT. يتم التعامل مع المتغيرات المحلية كسمات لكائن يتعلق بمكالمات الوظائف. يسمى ECMASCRIPT3 كائن مكالمة ، ويسمى ECMASCRIPT5 سجل بيئة تصريحي. يسمح JavaScript باستخدام هذه الكلمة الرئيسية للإشارة إلى الكائنات العالمية ، ولكن لا توجد طريقة للإشارة إلى الكائنات المخزنة في المتغيرات المحلية. هذه الخاصية الفريدة لتخزين الكائنات المتغيرة المحلية هي تطبيق داخلي غير مرئي لنا
القواعد الأساسية المذكورة أعلاه لـ JavaScript - فهم شامل للمتغيرات والمعرفات هو كل المحتوى الذي أشاركه معك. آمل أن تتمكن من إعطائك مرجعًا وآمل أن تتمكن من دعم wulin.com أكثر.