The Code Fix

🟨 شرح جافاسكريبت

العوامل (Operators)

العوامل الحسابية (Arithmetic)

5 + 3    // 8  جمع
5 - 3    // 2  طرح
5 * 3    // 15 ضرب
6 / 3    // 2  قسمة
7 % 3    // 1  باقي القسمة (modulo)
2 ** 3   // 8  الأس

الزيادة والنقصان:

let x = 5;
x++;   // x = 6
x--;   // x = 5

عوامل الإسناد (Assignment)

let x = 10;
x += 5;   // x = x + 5  → 15
x -= 3;   // 12
x *= 2;   // 24
x /= 4;   // 6

عوامل المقارنة (Comparison)

5 == "5"    // true  (يقارن القيمة فقط، يحوّل النوع)
5 === "5"   // false (يقارن القيمة والنوع) ✅
5 != "5"    // false
5 !== "5"   // true
5 > 3       // true
5 >= 5      // true

🔑 استخدم === و!== دائمًا! فهما يقارنان النوع والقيمة معًا، ويتجنّبان أخطاء التحويل التلقائي الغامضة لـ ==.

0 == ""     // true  😱 (== خادعة)
0 === ""    // false ✅ (=== واضحة)

العوامل المنطقية (Logical)

true && false   // false  (AND: كلاهما صحيح)
true || false   // true   (OR: أحدهما صحيح)
!true           // false  (NOT: العكس)

استخدام عملي:

let age = 20;
if (age >= 18 && age < 65) {
  console.log("بالغ");
}

عوامل حديثة مفيدة

// الدمج الصفري (??): قيمة احتياطية عند null/undefined
let name = userName ?? "زائر";

// السلسلة الاختيارية (?.): وصول آمن
let city = user?.address?.city;   // لا يخطئ إن كان user غير معرّف

العامل الثلاثي (Ternary)

اختصار لـ if/else (نتعمّق فيه بدرس الشروط):

let status = age >= 18 ? "بالغ" : "قاصر";

الأخطاء الشائعة

  • ❌ استخدام == بدل === → نتائج غامضة بسبب التحويل التلقائي.
  • ❌ الخلط بين = (إسناد) و==/=== (مقارنة) في الشروط.
  • ❌ نسيان أن % هو باقي القسمة لا النسبة المئوية.

خلاصة

أتقن العوامل الحسابية والإسناد والمقارنة (وفضّل === دائمًا) والمنطقية (&&, ||, !)، والعوامل الحديثة (??, ?.). هي أدوات بناء كل منطق برنامجك.