العمليات الحسابية والمنطقية + المقارنات (مهم جدًا قبل if/loops).

5:00 دقائق مجاني
في هذا الدرس ستتعلم كيف تتعامل مع الأرقام والمتغيرات، وكيف تبني منطق “صحيح/خطأ” باستخدام المقارنات

قبل أن نصل إلى الشروط (if) والحلقات، لازم نفهم شيء مهم: كيف نجري عمليات على الأرقام، وكيف نقارن القيم، وكيف نحصل على نتيجة true أو false. هذه المهارات هي أساس أي برنامج.

العمليات الحسابية الأساسية (+ - * /)

JavaScript توفر عمليات حسابية مثل أي آلة حاسبة. أشهر العمليات:

  • + للجمع
  • - للطرح
  • * للضرب
  • / للقسمة

مثال عملي:

let a = 10;
let b = 3;

let sum = a + b;      // 13
let sub = a - b;      // 7
let mul = a * b;      // 30
let div = a / b;      // 3.333...

ملاحظة مهمة

القسمة قد تنتج رقمًا عشريًا، وهذا طبيعي.

عمليات مفيدة جدًا: الباقي (%) والأس (**) وزيادة/نقصان

الباقي % (Modulus)

هذه العملية تعطيك باقي القسمة. مفيدة مثلًا لمعرفة هل الرقم زوجي أو فردي.

10 % 2  // 0  (زوجي)
9  % 2  // 1  (فردي)

القاعدة: إذا الرقم % 2 = 0 فهو زوجي.

الأس **

تستخدم لحساب القوة (Power).

2 ** 3  // 8
5 ** 2  // 25

الزيادة ++

تزود المتغير 1.

let x = 5;
x++; // الآن x = 6

النقصان --

تنقص المتغير 1.

let y = 5;
y--; // الآن y = 4

اختصارات مهمة (+= -= *= /=)

بدل ما تكتب المتغير مرتين، تستطيع استخدام اختصارات:

let score = 10;

score += 5;  // score = 15
score -= 3;  // score = 12
score *= 2;  // score = 24
score /= 4;  // score = 6

هذه الاختصارات ستستخدمها كثيرًا لاحقًا في الحلقات.

عمليات المقارنة (== === != !== > < >= <=)

المقارنة تعطيك دائمًا نتيجة true أو false. وهذه هي أساس اتخاذ القرار داخل if.

مقارنة مساواة

  • == مساواة (يتساهل في النوع)
  • === مساواة صارمة (الأفضل)
5 == "5"   // true  (يتساهل)
5 === "5"  // false (نوع مختلف)

عدم مساواة

  • != غير مساوي (يتساهل)
  • !== غير مساوي صارم (الأفضل)
5 != "5"   // false
5 !== "5"  // true

مقارنات أكبر/أصغر

10 > 5   // true
10 < 5   // false
10 >= 10 // true
9  <= 8  // false

قاعدة ذهبية ✅

استخدم === و !== غالبًا، لأنها تمنع مشاكل التحويل التلقائي بين النص والرقم.

العمليات المنطقية (&& و || و !)

المنطق يساعدك تجمع أكثر من شرط معًا.

AND: &&

لازم الشرطين يكونان true.

(5 > 2) && (10 > 3) // true

OR: ||

يكفي شرط واحد true.

(5 > 10) || (10 > 3) // true

NOT: !

يعكس النتيجة.

!(5 > 2) // false

مثال واقعي

تخيل تسجيل الدخول: نريد أن يكون المستخدم مسجلًا AND عمره أكبر أو يساوي 18:

let isLoggedIn = true;
let age = 19;

(isLoggedIn === true) && (age >= 18) // true

أخطاء شائعة يجب أن تنتبه لها

  • استخدام == بدل === في المقارنات
  • الخلط بين النص والرقم (مثل "10" و 10)
  • نسيان أن نتيجة المقارنة تكون true/false
  • استخدام && و || بدون فهم (تأكد من منطقك)

== مقابل === : الفخّ الأشهر في JavaScript

إن كان هناك درس واحد أتمنّى لو عرفته في بداياتي، فهو الفرق بين == و ===. بصفتي مبرمجًا أمضى وقتًا في تتبّع أخطاء غريبة، أؤكّد لك أن كثيرًا منها كان سببه هذا التفصيل الصغير.

العلامة == تقارن القيم لكنها تحوّل الأنواع تلقائيًا قبل المقارنة، فترى أن النص "10" يساوي الرقم 10 — وهذا مصدر أخطاء صامتة. أما === فتقارن القيمة والنوع معًا، فلا تتساهل. نصيحتي القاطعة التي لا أتنازل عنها: استخدم === دائمًا، ولا تستخدم == إلا إذا كنت تعرف تمامًا ماذا تفعل. هذه العادة وحدها ستجنّبك صنفًا كاملًا من الأخطاء.

مفهوم مهم: القيم الصادقة والكاذبة (Truthy / Falsy)

قبل أن تنتقل للشروط، هناك فكرة تجعل كل ما بعدها أوضح: في JavaScript، ليست القيم true و false فقط هي ما يُحكم عليه. بل تُعامَل بعض القيم وكأنها "صحيحة" وأخرى وكأنها "خاطئة" داخل الشروط.

فالصفر، والنص الفارغ، والقيمة undefined تُعامَل كأنها خاطئة (Falsy)، بينما أي رقم آخر أو نص فيه حروف يُعامَل كأنه صحيح (Truthy). هذا المفهوم يفسّر سلوكًا قد يبدو غامضًا في الشروط لاحقًا، ومن خبرتي فهمه مبكرًا يجعل كتابة الشروط أسهل بكثير.

ماذا بعد هذا الدرس؟

الدرس القادم: الشروط if / else واتخاذ القرار

سنستخدم المقارنات والمنطق لبناء “إذا حدث كذا نفّذ كذا” بطريقة واضحة.