المقارنات في الجافاسكربت :
في كل مقارنة تحصل يتحول الناتج إلى النوع Boolean الذي يضم بدوره القيم True أو False.
ماذا لو كانت المقارنة بين متغيرين من نوع String؟
1/ تقوم الجافاسكربت بمقارنة الحرف الاول من كل متغير عبر الترتيب الأبجدي , فاذا كان الحرف الأول أكبر من الحرف الثاني فيصبح اذا المتغير الاول اكبر من الثاني و العكس صحيح.
2/ في حالة اذا كان لديهما نفس الاحرف الأولى, الجافاسكربت ينتقل الى الحرف الثاني في كل متغير.
3/ تستمر هاته العملية الى نهاية كل سلسلة خطية فاذا كان لديهما نفس الأحرف إذا المتغيران متساويان.
ماذا لوكانت المقارنة بين نوعين String و Number؟
هنا المتغير من نوع String يتم تحويله الى النوع Number, عليك أن تدرك أن القيم : 0, null, undefined, NaN, "" كلها false و بالمقابل أي قيمة هي true, هذا في المقارنة العادية.
في حالة المساواة الصارمة أو Strict Equality
أما في حالة المقارنة الصارمة أو Strict Equality هنا تختلف الأمور مثلا لو قمنا بمقارنة "" == false الناتج هو true لان المتغيرين يتم تحويلهما إلى النوع number, عند تحويل سلسلة خطية فارغة "" الى النوع number تصبح 0 و القيمة false تصبح 0 أيضا , و لكن لو قمنا "" === false فالناتج هو false لانهما نوعين مختلفين Boolean و String
أتمنى أن يفيدكم هذا المبسط.
وفقكم الله أحبتي.