🔧 فهم العوامل (Operators) في جافا سكريبت: أدواتك البرمجية الأساسية! 🛠️

مرحباً بك في عالم المنطق البرمجي! تخيل أن المتغيرات هي صناديق تخزن بياناتك. لكن، ماذا لو أردت فتح هذه الصناديق واللعب بمحتوياتها؟ أن تجمع رقمين، أو تقارن بين قيمتين، أو تتخذ قراراً بناءً على شرط ما؟ هنا يأتي دور العوامل (Operators)! 🎯

العوامل هي رموز خاصة تخبر جافا سكريبت بتنفيذ عمليات محددة على المعاملات (Operands). المعاملات هي القيم (متغيرات أو ثوابت) التي تعمل عليها العوامل.


📌 1. عوامل التعيين (Assignment Operators): إعطاء القيمة

أبسط عامل وأكثرهم استخداماً هو عامل التعيين (=). مهمته بسيطة: خذ القيمة على اليمين وضعها في المتغير الموجود على اليسار.

let userName = "Ahmed"; // التعيين: خذ النص "Ahmed" وضعه في المتغير userName
let userScore = 100;   // التعيين: خذ الرقم 100 وضعه في المتغير userScore

هناك أيضاً عوامل تعيين مركبة تجمع بين عملية حسابية والتعيين:

let points = 10;
points += 5; // points = points + 5; النتيجة: points تصبح 15
points -= 3; // points = points - 3; النتيجة: points تصبح 12
points *= 2; // points = points * 2; النتيجة: points تصبح 24

➕ 2. العوامل الحسابية (Arithmetic Operators): الرياضيات البسيطة

هذه هي العمليات الرياضية الأساسية التي تعرفها:

  • الجمع (+) : 5 + 3 تساوي 8.
  • الطرح (-) : 10 - 4 تساوي 6.
  • الضرب (*) : 6 * 7 تساوي 42.
  • القسمة (/) : 15 / 3 تساوي 5.
  • الباقي (%) : يعطي باقي عملية القسمة. 10 % 3 تساوي 1 (لأن 10 ÷ 3 = 3 والباقي 1).
let num1 = 20;
let num2 = 6;

let sum = num1 + num2;        // 26
let difference = num1 - num2; // 14
let product = num1 * num2;    // 120
let quotient = num1 / num2;   // 3.333...
let remainder = num1 % num2;  // 2 (لأن 20 ÷ 6 = 3 والباقي 2)

عامل الزيادة والنقصان (++ و --)

طريقة مختصرة لزيادة أو إنقاص قيمة متغير بمقدار 1. مفيدة جداً في العدّ.

let counter = 0;
counter++; // counter = counter + 1; تصبح القيمة 1
counter++; // تصبح القيمة 2

let items = 5;
items--;   // items = items - 1; تصبح القيمة 4

⚖️ 3. عوامل المقارنة (Comparison Operators): مقارنة القيم

تستخدم لمقارنة قيمتين، وتُرجع دائماً نتيجة منطقية: إما true (صح) أو false (خطأ).

  • المساواة في القيمة (==) : هل القيمتان متساويتان؟ (تتجاهل نوع البيانات أحياناً).
  • المساواة الصارمة (===) : هل القيمتان متساويتان وفي نفس نوع البيانات؟ (الأفضل استخدامها).
  • عدم المساواة (!=) : هل القيمتان غير متساويتين؟
  • عدم المساواة الصارمة (!==) : هل القيمتان غير متساويتين في القيمة أو النوع؟
  • أكبر من (>) و أصغر من (<).
  • أكبر من أو يساوي (>=) و أصغر من أو يساوي (<=).
let age = 25;
let inputAge = "25";

console.log(age == inputAge);   // true (تتجاهل النوع، كلاهما "25")
console.log(age === inputAge);  // false (قيمة 25 رقم ≠ قيمة "25" نص)

console.log(age > 18);   // true
console.log(age <= 25);  // true
console.log(age != 30);  // true

🧠 4. العوامل المنطقية (Logical Operators): اتخاذ القرارات المعقدة

تستخدم لدمج أو عكس شروط منطقية، وتعمل مع قيم true و false.

  • و (&&) : تنتج true فقط إذا كان كلا الشرطين صحيحين.
  • أو (||) : تنتج true إذا كان أحد الشرطين على الأقل صحيحاً.
  • لا (!) : تعكس القيمة المنطقية. !true تصبح false.
// مثال: التحقق من صلاحية دخول لعبة
let hasTicket = true;
let userAge = 16;
let minAge = 12;

// الشرط: يجب أن يكون لديه تذكرة ويكون عمره 12 سنة أو أكثر
let canEnter = hasTicket && (userAge >= minAge); // true && true => true
console.log("هل يمكنه الدخول؟", canEnter); // true

// الشرط: يجب أن يكون عمره أقل من 5 سنوات (للأطفال) أو أكبر من 60 (لكبار السن)
let hasDiscount = (userAge < 5) || (userAge > 60); // false || false => false
console.log("هل يحصل على خصم؟", hasDiscount); // false

🧪 5. عامل سلسلة النصوص (String Concatenation Operator): ربط الجمل

عامل الجمع (+) له وظيفة ثانية عندما نتعامل مع النصوص: فهو يربطها ببعضها.

let firstName = "Sara";
let lastName = "Ahmed";
let fullName = firstName + " " + lastName; // "Sara Ahmed"
console.log("Hello, " + fullName + "!"); // "Hello, Sara Ahmed!"

🎯 خلاصة الدرس

تعلمت اليوم أدوات التحكم الأساسية في بياناتك! العوامل هي التي تجعل المتغيرات حيّة ومفيدة. تذكر:

  • = للتخزين والتعيين.
  • +, -, *, /, % للحساب.
  • ==, ===, >, < للمقارنة واتخاذ القرارات البسيطة.
  • &&, ||, ! لدمج الشروط واتخاذ القرارات المعقدة.