في JavaScript يمكن مقارنة الأعداد باستخدام عوامل المقارنة والمساواة التالية.
| المقارنة | المعامل |
|---|---|
| أكبر من | a > b |
| أكبر من أو يساوي | a >= b |
| أصغر من | a < b |
| أصغر من أو يساوي | a <= b |
| المساواة (الصارمة) | a === b |
| عدم المساواة (الصارمة) | a !== b |
نتيجة المقارنة دائمًا قيمة منطقية، أي إما true أو false.
1 < 3;
// => true
2 !== 2;
// => false
1 === 1.0;
// => true
// All numbers are floating-points, so this is different syntax
// for the exact same value.
في JavaScript، يمكن أيضًا استخدام عوامل المقارنة أعلاه لمقارنة السلاسل النصية. في هذه الحالة، يُطبَّق ترتيب معجمي (lexicographical). يمكنك العثور على قائمة بالترتيب الدقيق لجميع المحارف هنا.
'Apple' > 'Pear';
// => false
'a' < 'above';
// => true
'a' === 'A';
// => false
عليك أن تكون حذرًا عند مقارنة متغيرين يبدو أنهما يحتويان على قيم عددية لكن نوعهما سلسلة نصية.
بسبب الترتيب المعجمي، لن تكون النتيجة مماثلة لمقارنة قيم من النوع Number.
10 < 2;
// => false
'10' < '2';
// => true (because "1" comes before "2")
هناك طريقة أخرى لمقارنة السلاسل النصية وهي الطريقة localeCompare. وهي تتيح ضبط مجموعة متنوعة من الخيارات لتعديل أسلوب مقارنة السلاسل النصية.
قد تتساءل عن علامات المساواة الثلاث للتحقق من المساواة في JavaScript.
يمثل === التحقق من المساواة الصارمة، أي أنه لا يُجرى أي تحويل للنوع، والقيم من أنواع مختلفة تكون دائمًا غير متساوية.
'3' === 3;
// => false
// The value on the left has type string, the value on the right
// has type number.
1 === 1n;
// => false
// The value on the left has type number, the value on the right
// has type bigint.
يُوصى باستخدام === و !== للتحقق من المساواة في JavaScript.
هناك أيضًا == و != اللذان يمثلان التحقق من المساواة غير الصارمة.
يُفضل تجنّبه لأنه يُطبّق تحويلًا ضمنيًا للنوع قبل إجراء المقارنة.
من الصعب التنبؤ بالنتائج في هذه الحالات، وهي أحيانًا ليست ما تتوقعه.
يمكنك قراءة المزيد عنه هنا.
0 == false;
// => true
من حيث المبدأ، يمكنك أيضًا مقارنة قيم من أنواع مختلفة (على سبيل المثال، "1" < 2).
عندئذٍ ستُحوَّل القيم ضمنيًا لتحديد ما إذا كانت النتيجة صحيحة أم خاطئة.
وكما في التحقق من المساواة غير الصارمة، لا يُوصى بهذا أيضًا للسبب نفسه المذكور أعلاه.
فماذا ينبغي أن تفعل بدلًا من ذلك؟ يمكنك تطبيق التحويل الصريح للنوع. وبهذا يمكنك التأكد من أن القيم ذات النوع الصحيح قبل إجراء المقارنة. عندئذٍ سيصبح الكود أسهل في الفهم وأقل عرضة للأخطاء.