في الآونة الأخيرة ، واجه المشروع مشكلة في الحكم على الأشياء الفارغة. يرجى مراجعة المعلومات ذات الصلة وتلخيصها.
لم يعد الحكم على كائن فارغ هو نفسه مثل الحكم على سلسلة فارغة ، لأن كائن فارغ هو أيضًا كائن ، ويجب تخصيص الذاكرة بشكل منفصل ، بدلاً من أن تكون فارغًا مثل السلسلة ، فهو وعاء كبير من الأرز. الجميع متساوون ، على النحو التالي:
كما هو موضح في الكود أعلاه ، يمكن العثور على أنه سواء كان كائنًا فارغًا تم إنشاؤه من خلال الكائن الحرفي أو كائن فارغ تم إنشاؤه من خلال مُنشئ الكائن ، فإنه لا يساوي بعضهما البعض.
1. تحويل الكائن إلى سلسلة للمقارنة
لا ينصح هذه الطريقة ، ولكن من الأسهل في الواقع التفكير. يستخدم بشكل أساسي json.stringify () لإجبار الكائن. تم نشره لإلقاء نظرة:
var a = {} ؛ var b = new Object () ؛ console.log ("نتيجة المقارنة بين الحرفيين الكائنات:"+(json.stringify (a) == "{}")) console.log ("نتيجة المقارنة للمُنشئ:"+(json.stringify (b) == "{}"))))يمكننا الحصول على أن المقارنة بين كائنين فارغين تم تحويلها إلى سلاسل صحيحة ، والتي يمكن أن تحل هذه المشكلة ، ولكن لا ينصح بها. دعنا نتحدث عن الطريقة الثانية أدناه.
2. للاطلاع على حلقة
استخدم A for in loop للتكرار من خلال جميع السمات لتحديد ما إذا كان الكائن هو كائن فارغ:
var a = {} ؛ var b = new Object () ؛ function isEmpTyObject (obj) {for (var key in obj) {return false} ؛ return true} ؛ if (isEmptyObject (a)) {Alert ("a هو كائن فارغ")} if (isEmptyObject (b)) {Alert ("B كائن فارغ")}استخدم لـ in inop لخطو الكائن عند الحلقات ، وترجمة الحلقة المقابلة عند حلقة الصفيف ، مثل:
var B = ["Hello" ، "My" ، "World"] لـ (Var Index in B) {console.log (B [index]) ؛} // Hello My Worldما سبق هو كل المحتوى (العنوان) الذي جلبه لك المحرر. أتمنى أن تدعم wulin.com أكثر ~