المساواة الصارمة مقابل العادية
جزء من قسم Fundamentals في رحلة JavaScript على Coddy — الدرس 16 من 77.
في JavaScript، هناك نوعان من معاملات المساواة: المساواة غير الصارمة (==) و المساواة الصارمة (===).
تتحقق المساواة غير الصارمة (==) مما إذا كانت قيمتان متساويتين بعد إجراء تحويل النوع (type coercion). وهذا يعني أنه إذا كان للمعاملات أنواع مختلفة، فسيحاول JavaScript تحويلهما إلى نوع مشترك قبل إجراء المقارنة.
على سبيل المثال:
let b = 5 == "5"; // تكون النتيجة true، لأن السلسلة النصية "5" يتم تحويلها إلى الرقم 5 قبل المقارنةlet b = 0 == false; // تكون النتيجة true، لأن القيمة المنطقية false يتم تحويلها إلى الرقم 0 قبل المقارنةlet c = "" == false; // تكون النتيجة true، لأن السلسلة النصية الفارغة يتم تحويلها إلى الرقم 0 قبل المقارنةالمساواة الصارمة (===)، من ناحية أخرى، تتحقق مما إذا كانت قيمتان متساويتين بدون إجراء أي تحويل للأنواع. إذا كان للمعاملات أنواع مختلفة، فإنهما يعتبران غير متساويين.
على سبيل المثال:
let b = 5 === "5"; // تحمل القيمة false، لأنه لا يتم إجراء تحويل للنوع، والرقم لا يساوي السلسلة النصيةlet b = 0 === false; // تحمل القيمة false، لأنه لا يتم إجراء تحويل للنوع، والرقم 0 لا يساوي القيمة المنطقية falseبشكل عام، يُوصى باستخدام المساواة الصارمة (===) في معظم الحالات لتجنب النتائج غير المتوقعة بسبب تحويل الأنواع (type coercion).
وبالمثل، هناك أيضاً معاملات عدم المساواة غير الصارمة (!=) وعدم المساواة الصارمة (!==) التي تعمل بطريقة مماثلة، ولكنها تتحقق من عدم المساواة بدلاً من المساواة.
يتحقق عدم المساواة غير الصارم (!=) مما إذا كانت القيمتان غير متساويتين بعد إجراء تحويل النوع (type coercion)، بينما يتحقق عدم المساواة الصارم (!==) مما إذا كانت القيمتان غير متساويتين دون إجراء تحويل النوع.
التحدي
مبتدئيتم إعطاؤك كوداً يحتوي على ثلاثة متغيرات: a و b و c.
مهمتك هي إجراء المقارنات التالية وطباعة النتائج:
- تحقق مما إذا كان
aيساويbبشكل فضفاض (loosely equal) وقم بتخزين النتيجة فيd. - تحقق مما إذا كان
aيساويcبشكل صارم (strictly equal) وقم بتخزين النتيجة فيe. - تحقق مما إذا كان
bلا يساويcبشكل فضفاض (loosely not equal) وقم بتخزين النتيجة فيf. - تحقق مما إذا كان
aلا يساويbبشكل صارم (strictly not equal) وقم بتخزين النتيجة فيg.
استخدم المتغيرات المعطاة وعوامل المقارنة لإكمال المهمة.
جرّب بنفسك
// المتغيرات المعطاة
let a = 10
let b = "10"
let c = true
// اكتب الكود الخاص بك أدناه
// لا تغير السطر أدناه
console.log(`d = ${d}`)
console.log(`e = ${e}`)
console.log(`f = ${f}`)
console.log(`g = ${g}`)يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Fundamentals
2المتغيرات
الأرقامString (النصوص)Boolean (القيم المنطقية)قواعد التسميةالمتغيرات الفارغةمراجعة - تهيئة المتغيراتالثوابت8الحلقات التكرارية
حلقة Forحلقة Whileجملة Breakجملة Continueمراجعة - Factorialحلقة Do Whileالحلقات المتداخلة3المعاملات - الجزء الأول
المعاملات الحسابيةمعامل باقي القسمة (Modulo)اختصارات العمليات الحسابيةمعاملات المقارنةالمساواة الصارمة مقابل العاديةمراجعة - العمليات الحسابية البسيطة6أساسيات الإدخال والإخراج (IO)
الإخراجالإخراج باستخدام المتغيراتتحويل أنواع البيانات - الجزء الأولتحويل أنواع البيانات - الجزء الثانيمراجعة - حتى 120مراجعة - صح أم خطأ