Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

المساواة الصارمة مقابل العادية

جزء من قسم 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)، بينما يتحقق عدم المساواة الصارم (!==) مما إذا كانت القيمتان غير متساويتين دون إجراء تحويل النوع.

challenge icon

التحدي

مبتدئ

يتم إعطاؤك كوداً يحتوي على ثلاثة متغيرات: a و b و c.

مهمتك هي إجراء المقارنات التالية وطباعة النتائج:

  1. تحقق مما إذا كان a يساوي b بشكل فضفاض (loosely equal) وقم بتخزين النتيجة في d.
  2. تحقق مما إذا كان a يساوي c بشكل صارم (strictly equal) وقم بتخزين النتيجة في e.
  3. تحقق مما إذا كان b لا يساوي c بشكل فضفاض (loosely not equal) وقم بتخزين النتيجة في f.
  4. تحقق مما إذا كان 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}`)
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Fundamentals