في العمليات المنطقية لـ js، سيتم الحكم على 0 و"" وnull وfalse وun المعرفة وNaN على أنها خاطئة، وسيتم الحكم على كل شيء آخر على أنه صحيح.
||احسب المعامل الأول أولاً، إذا كان من الممكن تحويله إلى صحيح، قم بإرجاع قيمة التعبير الموجود على اليسار. حتى لو لم يكن معامل العامل ||. قيمة منطقية، فلا يزال من الممكن اعتباره عملية منطقية OR، لأنه بغض النظر عن نوع القيمة التي تُرجعها، يمكن تحويلها إلى قيمة منطقية.
استفد من ميزة إرجاع القيم غير المنطقية: استخدم || للمعاملات غير المنطقية لتحديد أول قيمة محددة وغير فارغة في مجموعة من القيم البديلة (الأولى هي قيمة غير خاطئة)
مثال:
فار ماكس = max_width ||.obj.max_width ||.
var attr = attr ||. تُستخدم هذه العملية غالبًا لتحديد ما إذا كان المتغير قد تم تعريفه أم لا، فأعطه قيمة أولية، وهو أكثر فائدة عند تحديد قيمة افتراضية لمعلمة دالة.
&&، يقوم بتقييم التعبير الأول أولاً، وإذا كان خاطئًا، فلن تتم معالجة التعبير الثاني، وإلا ستستمر معالجة التعبيرات اللاحقة. تحديد قيمة أول تعبير غير صحيح من اليسار إلى اليمين، وإرجاع قيمة التعبير الأخير إذا لم يتم العثور عليه.
مثال: (يجب مراعاة الطعم بعناية)
2 && 's1' && '123' && 'sss' قيمة التعبير تساوي 'sss'
2 && 's1' && '' && 'sss' قيمة التعبير تساوي ''
2 && 's1' && NaN && 'sss' قيمة التعبير تساوي NaN
إذا (أ >=5){
تنبيه("مرحبا");
}
يمكن تبسيطها إلى:
أ >= 5 && تنبيه("مرحبا");
الفرق بين typeof 5 وtypeof !!5 هو طريقة أكثر صرامة في الكتابة. تتمثل وظيفة !! في تحويل متغير من الأنواع الأخرى إلى النوع المنطقي. على سبيل المثال، if(!!attr) => if(attr)
لا تساعدنا ميزات || و&& في js على تبسيط التعليمات البرمجية فحسب، بل تساعدنا أيضًا في تقليل إمكانية قراءة التعليمات البرمجية. وهذا يتطلب منا أن نزنه بأنفسنا.
التنفيذ الذكي لوظيفة startWith في JS، تنبيه(!'asdf'.indexOf('s')) => !0 = صحيح