1. نظرة عامة على الأنواع الأساسية وأنواع المرجع
تتضمن قيم أنواع البيانات في JS: قيم النوع الأساسي وقيم نوع المرجع
أنواع البيانات الأساسية: غير محددة ؛ فارغة ؛ منطقية ؛ رقم ؛ سلسلة
قيمة نوع المرجع: المحفوظة في الذاكرة ، لا يسمح JS بالوصول المباشر إلى مواقع الذاكرة ، لذلك عند تشغيل المراجع بدلاً من الكائنات الفعلية
2. كيفية اكتشاف أنواع البيانات
1. اكتشاف أنواع البيانات الأساسية: استخدم typeof
var s = "aaa" ؛ تنبيه (typeof s) ؛ // العودة إلى السلسلة
2. نوع المرجع (نوع الكائن) الكشف: استخدم مثيل
تنبيه (شخص مثيل من كائن) ؛ تنبيه (person extomof array) ؛ تنبيه (person extomof regexp) ؛
3. حالة خاصة: إرجاع مثيل exicalof دائمًا صحيحًا عند اكتشاف الكائن ، ويُرجع دائمًا خطأ عند اكتشاف الأنواع الأساسية (لأن الأنواع الأساسية ليست كائنات)
Typeof إرجاع وظيفة عند اكتشاف الوظيفة ، والكائن عند اكتشاف التعبيرات العادية.
3. الفرق بين الأنواع الأساسية والأنواع المرجعية
1. يمكنك إضافة سمات إلى نوع المرجع ، ولكن ليس النوع الأساسي.
2. عند النسخ ، يقوم النوع الأساسي بنسخ متغير جديد مباشرة ، ولا توجد علاقة بين المتغيرات الجديدة والقديمة ؛
يقوم النوع المرجعي أيضًا بنسخ المتغير الجديد ، ولكن هذا المتغير هو مؤشر ، وتشير المؤشرات القديمة والجديدة إلى نفس الكائن
3. نقل معلمة الوظيفة: مبدأ جميع نقل المعلمات هو تمرير المتغيرات الخارجية إلى معلمات الوظيفة من خلال النسخ. لذلك ، فإن تشغيل الوظيفة الداخلية على المعلمات ليس له أي تأثير على المتغير الأصلي الخارجي
فيما يلي ما يلي للتحقق من المعلمات كنوع أساسي وأنواع المراجع كأمثلة:
وظيفة Addten (num) {num += 10 ؛ عودة NUM ؛ } var count = 20 ؛ var result = addten (count) ؛ // لن تؤثر العملية الداخلية على NUM هنا على قيمة وظيفة العد الخارجية setName (OBJ) {obj.name = "nicholas" ؛ OBJ = كائن جديد () ؛ obj.name = "Greg" ؛ } var person = new Object () ؛ setName (شخص) ؛ تنبيه (person.name) ؛ // إرجاع "Nicholas" ، مما يشير إلى أن اسم كائن الشخص الخارجي لا يزال غير متأثرما سبق هو ما قدمه لك المحرر ويتحدث عن الأنواع الأساسية والأنواع المرجعية في JavaScript (الموصى بها). آمل أن يكون ذلك مفيدًا للجميع. إذا كان لديك أي أسئلة ، فيرجى ترك رسالة لي وسوف يرد المحرر على الجميع في الوقت المناسب. شكرا جزيلا لدعمكم لموقع wulin.com!