المقارنات
جلسة الإسناد ملأت الصندوق المسمّى. هنا تسأل عمّا بداخله: أهو نفسه؟ أكبر؟ كافٍ بعد؟ الجواب دائماً نعم أو لا — true أو false. تلك الأسئلة معاملات المقارنة. ستستخدمها لاحقاً داخل الشروط؛ هنا تتعلّم قراءة الرموز والثقة بالمنطقي الذي تعيده.
ما هي المقارنة؟
المقارنة تأخذ طرفين وتعيد boolean. لا تخزّن رقماً جديداً في الاسم الأيسر (ذلك كان =). بعد 5 === 5 النتيجة true. بعد 5 === "5" النتيجة false لأن النوعين يختلفان. يمكنك طباعة ذلك المنطقي، حفظه في متغير، أو كتابته في الصفحة.
نظرة سريعة على المعاملات
📊 معاملات المقارنة اليومية
| المعامل | يسأل | نتيجة نموذجية |
|---|---|---|
=== |
نفس القيمة والنوع؟ | 5 === 5 → true |
!== |
قيمة أو نوع مختلف؟ | 5 !== "5" → true |
< |
أصغر قطعاً؟ | 3 < 10 → true |
> |
أكبر قطعاً؟ | 3 > 10 → false |
<= |
أصغر أو يساوي؟ | 10 <= 10 → true |
>= |
أكبر أو يساوي؟ | 9 >= 10 → false |
أبقِ الجدول قريباً. == و != موجودان أيضاً، لكن الدورة تعتبرهما فخّ المبتدئ — قد يحوّلان النوع قبل المقارنة. التزم بـ === و !== حتى درس لاحق عن التحويل القسري.
console.log(7 === 7);
console.log(7 === "7");
console.log(7 !== 7);
console.log(7 !== "7");
let n = 7;
console.log(n === 7);
=== يفحص القيمة والنوع معاً
ثلاث علامات تساوٍ هي الافتراض للمبتدئ. يجب أن يتطابق الطرفان في القيمة والنوع. الرقم 7 ليس النص "7".
تطبع الوحدة true ثم false ثم false ثم true ثم true. السطر الأخير يبيّن أن الرقم المخزَّن ما زال يُقارن بصرامة مع الحرفي 7. !== السؤال المعاكس: «أليسا مختلفين؟» — هنا 7 !== "7" تساوي true لأن النوعين يختلفان.
لماذا يتجنّب المبتدئ ==
علامتا تساوٍ قد تحوّل النص إلى رقم (أو العكس) ثم تقرّر. تبدو مريحة حتى تخفي خطأً.
console.log(7 == "7");
console.log(7 === "7");
console.log(0 == false);
console.log(0 === false);
console.log("" == 0);
console.log("" === 0);
7 == "7" تصبح true رغم أن أحد الطرفين نص. 7 === "7" تبقى false. كذلك 0 == false و "" == 0 تخرجان true — مفاجآت صاخبة. الفحص الصارم صادق: رقم وboolean ونص فارغ أشياء مختلفة. فضّل === في هذه الدورة.
ترتيب الأرقام
< > <= >= ترتّب الأرقام. المساواة تُحسب نعم مع <= و >=.
console.log(3 < 10);
console.log(3 > 10);
console.log(10 <= 10);
console.log(9 >= 10);
let score = 80;
console.log(score >= 60);
تحصل على true، false، true، false، true. السطر الأخير سؤال يومي: «هل النقاط كافية؟» إن أردت اسماً للجواب فاحفظ المنطقي.
let score = 80;
let pass = score >= 60;
console.log(pass);
let age = 17;
let adult = age >= 18;
console.log(adult);
pass يساوي true (80 يتجاوز 60). adult يساوي false (17 لا يبلغ 18). المقارنة أنتجت المنطقي أصلاً — أنت فقط أعطيته اسماً.
console.log("A" < "B");
console.log("B" < "A");
console.log("apple" === "apple");
console.log("Apple" === "apple");
console.log("10" < "9");
للنص ترتيب القاموس
تُقارن السلاسل حرفاً حرفاً كالقاموس — لا كـ«الحجم» في ذهن الإنسان. "A" < "B" تساوي true. الحرف الكبير ليس الصغير ("Apple" === "apple" تساوي false). أرقام داخل الاقتباس تتبع قواعد النص أيضاً: "10" < "9" قد تكون true لأن "1" يأتي قبل "9". حوّل بـ Number() حين تقصد ترتيباً رقمياً.
عرض فحص على الصفحة
احسب boolean ثم اكتب تسمية قصيرة في الصفحة.
<!DOCTYPE html>
<html>
<head>
<title>Comparison — page check</title>
</head>
<body>
<p id="out">…</p>
<script>
let age = 18;
let adult = age >= 18;
let box = document.getElementById("out");
box.textContent = "adult=" + adult;
</script>
</body>
</html>
age يساوي 18، إذن adult يصبح true والصفحة تعرض adult=true. غيّر age إلى 17 وحدّث؛ يفترض أن ترى adult=false. الدروس اللاحقة تتفرّع بـ if؛ هذا العرض يطبع نعم/لا فقط.
جرّب بنفسك
- اطبع
8 === 8و8 === "8". - اطبع
8 !== "8"و8 !== 8. - ضع
4 == "4"بجانب4 === "4"ولاحظ الفرق. - خزّن
let pts = 50واطبعpts >= 60. - اطبع
"cat" === "cat"و"Cat" === "cat". - في عرض HTML غيّر
ageفقط، حدّث، واقرأ نصadult=الجديد.
أخطاء شائعة
- كتابة
=وأنت تقصد===(ذلك يخزّن ولا يسأل) - استخدام
==لأنه «يعمل أحياناً» — وهو أيضاً يحوّل الأنواع - ترتيب نصوص الأرقام وكأنها أعداد (
"10" < "9") - نسيان أن المقارنة تعيد boolean أصلاً — لا تلفّها يدوياً بـ
true/false - خلط هذه العائلة مع المعاملات المنطقية (
&&||) — تلك تجمع نتائج نعم/لا؛ الدرس التالي
خلاصة
- المقارنة تسأل وتعيد
trueأوfalse - فضّل
===و!==(قيمة ونوع) - رتّب بـ
<><=>=؛ المساواة داخل<=و>= - السلاسل تتبع ترتيب القاموس، بما فيه نتائج أرقام نصية غريبة
- تجنّب
==/!=كافتراض للمبتدئ - التالي: المعاملات المنطقية — جمع عدة فحوص نعم/لا بـ
&&و||و!
🧠 اختبر معرفتك
اختبر معرفتك
تحدى نفسك مع هذا الاختبار التفاعلي واكتشف مدى فهمك للموضوع
📝 التعليمات
- اقرأ كل سؤال بعناية
- اختر أفضل إجابة لكل سؤال
- يمكنك إعادة الاختبار عدة مرات كما تريد
- سيتم عرض تقدمك في الأعلى