منطقي أو (||)
var result = true || خطأ شنيع؛
على غرار المنطق والعمليات ، إذا كان هناك معامل ليس منطقيًا أو منطقًا أو لا يعيد بالضرورة منطقية ؛ في هذا الوقت ، يتبع القواعد التالية:
□ إذا كان المعامل الأول هو كائن ، يتم إرجاع المعامل الأول.
□ إذا تم تقييم المعامل الأول إلى خطأ ، يتم إرجاع المعامل الثاني.
□ إذا كان كلتا المعاملتين كائنات ، يتم إرجاع المعامل الأول.
□ إذا كانت كلتا المعاملين لاغية ، فلاضطر
□ إذا كان كلاهما غير محدد ، فالتراجع غير المحدد.
□ إذا كان كلاهما نان
الفرق بين "===" و "=="
مشغل المساواة (==)
سوف يقوم المشغل المساواة بتحويل قيم التشغيل ضمنيًا ومقارنتها:
إذا كانت قيمة العملية عبارة عن منطقية ، فسيتم تحويلها إلى قيمة رقمية قبل المقارنة
إذا كانت قيمة عملية واحدة عبارة
إذا كانت قيمة عملية واحدة هي كائن والآخر ، فسيتم استدعاء طريقة ValueOF () للكائن ويتم مقارنة النتيجة وفقًا للقواعد السابقة
فارغة وغير محددة متساوية
إذا كانت قيمة العملية نان ، فإن المقارنة المتساوية تعود كاذبة
إذا كانت كلتا قيمتين للتشغيل كائنات ، قارن ما إذا كانا يشيران إلى نفس الكائن. إذا كانت كلتا المعاملين تشير إلى نفس الكائن ، فإن المشغل المساواة يعيد صحيحًا ، وإلا ، إرجاع خطأ
يتم شرح ما يلي بشكل منفصل:
دعنا نتحدث عن === ، هذا بسيط نسبيًا. يتم استخدام القواعد التالية لتحديد ما إذا كانت القيمتين === متساويين:
1. إذا كانت الأنواع مختلفة ، فهي [غير متكافئة]
2. إذا كان كلاهما قيمًا رقميًا وهما نفس القيمة ، ثم [متساوٍ] ؛ (! استثناء) هو ، إذا كان واحد منهم على الأقل نان ، ثم [ليس متساوًا]. (لتحديد ما إذا كانت القيمة هي نان ، يمكنك فقط استخدام isnan () للحكم)
3. إذا كان كلاهما سلاسل والشخصيات في كل موقف هي نفسها ، فإن [المساواة] ؛ خلاف ذلك [غير متساوٍ].
4. إذا كانت كلتا القيمتين صحيحة ، أو كلاهما خطأ ، ثم [متساوٍ].
5. إذا كانت كلتا القيمتين تشير إلى نفس الكائن أو الدالة ، ثم [المساواة] ؛ خلاف ذلك [غير متساوٍ].
6. إذا كانت كلتا القيمتين لاغية ، أو كلاهما غير محدد ، ثم [متساوٍ].
دعنا نتحدث عن == ، وفقًا للقواعد التالية:
1. إذا كان النوعين من القيمة متماثلين ، اجعل === مقارنة.
2. إذا كان نوعي القيمة مختلفان ، فقد يكونان متساويين. يتم إجراء تحويل النوع وفقًا للقواعد التالية ثم مقارنته:
أ. إذا كان أحدهم لاغا والآخر غير محدد ، ثم [متساو].
ب. إذا كان أحدهما عبارة عن سلسلة والآخر عبارة عن قيمة رقمية ، فقم بتحويل السلسلة إلى قيمة رقمية ثم قارنها.
ج. إذا كانت أي قيمة صحيحة ، قم بتحويلها إلى 1 وقارنها ؛ إذا كانت أي قيمة خاطئة ، قم بتحويلها إلى 0 وقارنها.
د. إذا كان أحدهما كائنًا والآخر هو رقمي أو سلسلة ، فقم بتحويل الكائن إلى قيمة من النوع الأساسي ثم قارنه. قم بتحويل كائن إلى نوع أساسي واستخدم طريقة ToString أو ValueOF الخاصة به. سيحاول فئة JS Core المدمجة قيمة قبل tostring ؛ الاستثناء هو التاريخ ، الذي يستخدم تحويل tostring. كائن أساسي غير JS ، دعنا نقول (إنه أكثر إزعاجًا ، لا أفهم الكثير)
ه. أي مجموعة أخرى هي [غير متكافئة].
قيمة التعبير التعبير
null == undefinedTruetrue == 1True
"nan" == nanfalse $ null == 0false
false == 0truenan! = nantrue
باختصار ، "==" لا يتطلب سوى قيم متساوية. "===" يتطلب أن تكون القيمة والنوع متساوية.
تأتي المعلومات من برمجة JavaScript Advanced ، وفرزها وتحديثها لاحقًا