متغيرات ecmascript:
1. قيمة النوع الأساسي (قطاع بيانات بسيط)
2. قيمة نوع المرجع (كائن قد يتكون من قيم) → كائن تم حفظه في الذاكرة
------
السمات الديناميكية: يمكنك فقط إضافة سمات جديدة ديناميكيًا إلى القيم المرجعية للاستخدام في المستقبل.
------
نسخ القيم المتغيرة:
انسخ قيمة النوع الأساسي → إنشاء قيمة جديدة على الكائن المتغير → نسخ إلى المتغير الجديد (لا يوجد تأثير متبادل)
انسخ قيمة نوع المرجع → انسخ القيمة المخزنة في الكائن المتغير في مساحة تخصيص المتغير الجديدة (النسخة هي مؤشر ، تشير إلى نفس الكائن ، يؤثر على بعضها البعض)
------
تمرير المعلمات:
يتم تمرير جميع الوظائف في ECMAScript حسب القيمة.
(يتم نسخ القيمة خارج الوظيفة إلى المعلمات داخل الوظيفة.
→ يمكنك أن تتخيل معلمات وظيفة ECMA كمتغيرات محلية. )
شرح الأسباب:
البيان 1:
معلمات الوظائف هي متغيرات محلية ، والتي يتم تمريرها إلى معلمات الوظيفة على القيم الخارجية ، ولا تؤثر القيم الداخلية والخارجية على بعضها البعض. تتم معالجة المراجع والعناوين المكررة ، بحيث يكون لها تأثير على بعضها البعض.
البيان 2: زاوية الكائن (المعلمة هي كائن OBJ)
------
يتم تمرير الكائنات عن طريق القيمة → كائنات المعلمة والكائنات الخارجية تشير إلى نفس الكائن → الكائن الذي يشير إليه الكائن الخارجي يحتوي على كائن واحد فقط في ذاكرة الكومة وهو متغير عالمي.
لا تخطئ في ذلك نتيجة للكائن المحلي الذي ينعكس في النطاق العالمي (الخارجي) للكائن المعدل → سيتم تدمير المتغيرات المحلية داخل الوظيفة فور تنفيذ الوظيفة.
------
بيئة التنفيذ (يشار إليها أحيانًا باسم "البيئة") والنطاق
تحدد بيئة التنفيذ أبيض أو الوظائف التي لديها إمكانية الوصول إلى البيانات الأخرى تحدد سلوكياتها الخاصة - كل بيئة تنفيذ لها كائن متغير مرتبط به → يتم تخزين جميع المتغيرات والوظائف المحددة في البيئة في هذا الكائن.
------
كل وظيفة لها بيئة تنفيذ خاصة بها → عندما يدخل تدفق التنفيذ في وظيفة → سيتم دفع بيئة الوظيفة إلى مكدس البيئة → pop it بعد تنفيذ الوظيفة → تحكم الإرجاع في بيئة التنفيذ السابقة
عند تنفيذ الكود في بيئة ، يتم إنشاء سلسلة نطاق للكائن المتغير.
هدف سلسلة النطاق: ضمان الوصول المنظم لجميع المتغيرات والوظائف التي لديها إذن للوصول في بيئة التنفيذ.
تعد الواجهة الأمامية لسلسلة النطاق دائمًا كائنًا متغيرًا في البيئة حيث يوجد الكود الذي يتم تنفيذه حاليًا.
------
يمكن للبيئة الداخلية أن تربط جميع البيئات الخارجية من خلال سلاسل النطاق ، لكن البيئة الخارجية لا يمكنها الوصول إلى البيئة الداخلية (اتصال البيئة خطي ، منظم → ابحث عن سلسلة النطاق لأعلى إلى متغيرات الاستعلام وأسماء الوظائف)
يتم التعامل مع معلمات الوظائف أيضًا كمتغيرات
------
تمديد سلسلة النطاق:
يمكن لبعض العبارات إضافة متغير مؤقتًا إلى سلسلة النطاق الأمامي (تتم إزالة المتغيرات بعد تنفيذ الكود)
1. كتلة الصيد في بيان المحاولة
2. مع البيان
------
Javas ليس لديه نطاق على مستوى الكتلة
هنا يمكننا ببساطة التمييز بين نطاق مستوى الكتلة ونطاق الوظيفة
التفسير التفصيلي أعلاه لمتغيرات JS والنطاق هو كل المحتوى الذي شاركته معك. آمل أن تتمكن من إعطائك مرجعًا وآمل أن تتمكن من دعم wulin.com أكثر.