لا ينبغي تسجيل مثل هذه الأشياء الأساسية بعد الآن ، ولكن ، مراجعة الماضي وتعلم الأشياء الجديدة أولاً. لنبدأ بنوع البيانات.
JS Six أنواع البيانات الرئيسية: الرقم ، السلسلة ، الكائن ، منطقية ، فارغة ، غير محددة
السلسلة: موضحة بواسطة عروض أسعار واحدة أو مزدوجة ، مثل "سلسلة"
الرقم: ما هي الأعداد الصحيحة ، أرقام النقاط العائمة جميعها تسمى الأرقام ، كما تعلمون ~
منطقية: هذا صحيح وكاذب
غير محدد: غير محدد ، أي أن تقوم بإنشاء متغير ولكن لا تُحدد قيمة له ~
NULL: لذلك ، يسمى sijiu. لا شيء لا يعني شيئًا ، لا يعني شيئًا
الكائن: من الصعب شرح هذا. إنه النوع بخلاف الخمسة أعلاه
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
نوع الحكم نوع البيانات
يمكن لـ typeof حل معظم أحكام نوع البيانات. إنها عملية واحدة. قبل قيمة العملية ، تكون قيمة الإرجاع الخاصة بها عبارة عن سلسلة. تشير هذه السلسلة إلى نوع رقم العملية. لذلك ، إذا (typeof (قيمتك) == "سلسلة") {}
فيما يلي النتائج التي يتم إرجاعها بواسطة أنواع البيانات المختلفة:
var a = "string" ؛ console.log (a) ؛ // stringvar a = 1 ؛ console.log (a) ؛ // numbervar a = false ؛ console.log (a) ؛ // booleanvar a ؛ console.log (typeof a) ؛ // unfinedvar a = null ؛ console.log (typeof a) ؛ // objectvar a = document ؛ console.log (typeof a) ؛ // objectvar a = [] ؛ console.log (a) ؛ // objectvar a = function () {} ؛ console.log (typeof a) // وظيفة بالإضافة إلى الحكم على أنواع البيانات ، يمكنك أيضًا الحكم على أنواع الوظائفهذا واضح. باستثناء الأنواع الأربعة الأولى ، إرجاع جميع أنواع الكائنات الفارغة والكائن والمصفوفة ؛
بالنسبة لأنواع الوظائف ، يتم إرجاع الوظيفة ، مثل typeof (date) ، typeof (eval) ، إلخ.
ثم هنا يمكننا تمديد مشكلة أخرى تحظى بشعبية كبيرة والحل شائع بالفعل. كيفية تحديد ما إذا كانت البيانات نوع صفيف؟
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
طريقة JS لتحديد نوع الصفيف
الطريقة 1 مثيل
مثيل ، لذلك ، الاسم يعني ، مثال ، مثال. لذلك ، يتم استخدام مثيل لتحديد ما إذا كان المتغير هو مثيل لكائن. إنها صيغة تشغيل ثلاثية الأبعاد-الفرق الأكثر جوهرية بين نوعها
ANECHANTION B؟ ALERT ("True"): ALERT ("false") // لاحظ أن قيمة B هي نوع البيانات الذي تريد الحكم عليه ، وليس سلسلة ، مثل Array
خذ كستناء:
var a = []
الطريقة 2 مُنشئ
التعريف في W3C: خاصية مُنشئ تُرجع مرجعًا إلى وظيفة الصفيف التي أنشأت هذا الكائن
يرجع المُنشئ المقابل للكائن. في التعريف ، لا يتماشى تمامًا مع مثيل exatef ، ولكن التأثيرات هي نفسها
على سبيل المثال: (A estreamof array) // A هل هو مثيل للمصفوفة؟ صحيح أو خطأ
(A.Constructor == صفيف) // هل المُنشئ المقابل للمثال وهو مقابل للصفيف؟ صحيح أو خطأ
خذ كستناء:
وظيفة الموظف (الاسم ، الوظيفة ، ولد) {this.name = name ؛ this.job = Job ؛ this.born = born ؛} var bill = new ameister ("Bill Gates" ، "Engineer" ، 1985) ؛ Console.log (Bill.Constructor) ؛ // وظيفة الإخراج الموظف (الاسم ، JobTitle ، Born) {this.name = name ؛ this.jobtitle = Job ؛ this.born = ولد ؛}ثم طريقة الحكم على أنواع مختلفة هي:
console.log ([]
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
طريقة أكثر صرامة وعامة:
دالة isarray (كائن) {إرجاع كائن && typeof object === 'Object' && Array == Object.constructor ؛}! ! يلاحظ:
باستخدام مثيل ومُنشئ ، يجب الإعلان عن الصفيف المحكوم عليه على الصفحة الحالية! على سبيل المثال ، تحتوي صفحة (صفحة الوالدين) على إطار عمل ، يتم الرجوع إلى صفحة (صفحة فرعية) في الإطار ، ويتم الإعلان عن صفيف في صفحة الطفل ، وتعيينها إلى متغير من الصفحة الأصل. في هذا الوقت ، يتم الحكم على المتغير ، Array == Object.constructor ؛ سيعود كاذب.
سبب:
1. الصفيف هو بيانات مرجعية. أثناء عملية الإرسال ، هو مجرد نقل للعنوان المرجعي.
2. العنوان المشار إليه بواسطة الكائن الأصلي للمصفوف لكل صفحة يختلف. المُنشئ المقابل للمصفوفة المعلن في صفحة الطفل هو كائن الصفيف للصفحة الفرعية. للحكم على الصفحة الأصل ، فإن الصفيف المستخدم لا يساوي صفيف صفحة الطفل ؛ تذكر ، وإلا سيكون من الصعب تتبع المشكلة!
الطريقة 3: طريقة الحكم الخصائص
جميع الطرق المذكورة أعلاه لها عيوب معينة ، لكن يجب أن نعتقد أن حكمة الجماهير هي في كل مكان. يمكننا الحكم على نوعه بناءً على بعض خصائص الصفيف.
الدالة isArray (كائن) {إرجاع كائن && typeof object === 'Object' && typeof object.length === 'number' && typeof object.splice === 'function' && // فقط حدد ما إذا كانت خاصية الطول تعدادًا للمصفوفات ، وسيتم الحصول على خطأ! (object.propertyisenumerable (إن وجود الطول واللصق ليس بالضرورة صفيفًا ، لأن عامل الحكم الأكثر أهمية هو إضافة سمات إلى الكائنات ، ولكن لا تعداد سمات الطول.
ملاحظة: نحن هنا نشعر برمجيات propertyisenumerform:
هدف. propertyisenumerable (pronse)
تحديد ما إذا كان يمكن سرد السمة المحددة
ملاحظة: إذا كان الطين موجودًا في كائن ويمكن أن يتم تعداده بشكل شامل باستخدام A for ... في الحلقة ، فإن الخاصية propertyiseNumerable تُرجع صحيحًا. إذا لم يكن للكائن الخاصية المحددة أو الخاصية المحددة غير قابلة للتعداد ، فإن الخاصية propertyiseNumerable تُرجع كاذبة.
خاصية PropertyIsEnumerable لا تأخذ في الاعتبار الكائنات في سلسلة النموذج الأولي.
مثال:
var a = new array ("Apple" ، "Banana" ، "Cactus") ؛ document.write (A.PropertyIsEnumerable (1)) ؛الطريقة 4 أسهل طريقة
دالة isarray (o) {return object.prototype.toString.call (o) === '[كائن صفيف]' ؛}ما سبق هو المحتوى الكامل لهذه المقالة. لمزيد من المعلومات حول JavaScript ، يمكنك التحقق من: "دليل JavaScript Reference Tutorial" و "JavaScript Code Style". آمل أيضًا أن يدعم الجميع wulin.com أكثر.