العمليات الحسابية وعمليات المقارنة
البرامج تحسب طوال الوقت: مجموع سلة المشتريات، والوقت المتبقي في اللعبة، وعدد الإعجابات. وتقارن أيضاً: هل عمر المستخدم أكبر من 13؟ هل كلمة المرور طويلة بما يكفي؟ في هذا الدرس ستتعلم العمليات الحسابية وعمليات المقارنة، وستعرف لماذا يحب المبرمجون العلامة ===.
العمليات الحسابية الأساسية
Section titled “العمليات الحسابية الأساسية”تعرف أغلب هذه العمليات من الرياضيات، مع اختلاف بسيط في بعض الرموز:
| العملية | الرمز | مثال |
|---|---|---|
| الجمع | + |
17 + 5 |
| الطرح | - |
17 - 5 |
| الضرب | * |
17 * 5 |
| القسمة | / |
17 / 5 |
| باقي القسمة | % |
17 % 5 |
| الأُس (القوة) | ** |
17 ** 2 |
let a = 17;let b = 5;console.log(a + b);console.log(a - b);console.log(a * b);console.log(a / b);console.log(a % b);console.log(a ** 2);2212853.42289باقي القسمة %
Section titled “باقي القسمة %”العلامة % لا تحسب نسبة مئوية كما قد تظن، بل تعطيك الباقي بعد القسمة. تخيّل أن معك 17 قطعة حلوى وتريد توزيعها على 5 أصدقاء بالتساوي: كل واحد يأخذ 3 قطع، ويتبقى معك 2. هذا هو ناتج 17 % 5.
من أشهر استخداماتها معرفة إذا كان الرقم زوجياً أم فردياً. الرقم الزوجي باقي قسمته على 2 يساوي صفراً:
console.log(10 % 2, 7 % 2);0 1ترتيب العمليات
Section titled “ترتيب العمليات”مثل الرياضيات تماماً، الضرب والقسمة يُنفّذان قبل الجمع والطرح. والأقواس تغيّر هذا الترتيب:
console.log(2 + 3 * 4);console.log((2 + 3) * 4);1420اختصارات مفيدة
Section titled “اختصارات مفيدة”كثيراً ما تريد أن تغيّر قيمة متغير بالاعتماد على قيمته الحالية. بدلاً من كتابة likes = likes + 10 توجد اختصارات أقصر:
let likes = 0;likes++; // زِد واحداًlikes++;console.log(likes);likes += 10; // زِد عشرةconsole.log(likes);
let total = 100;total -= 30; // اطرح 30console.log(total);total *= 2; // اضرب في 2console.log(total);21270140العلامة ++ تزيد واحداً، و -- تنقص واحداً. ستستخدمهما كثيراً في درس الحلقات.
الجمع مع النصوص: انتبه!
Section titled “الجمع مع النصوص: انتبه!”العلامة + لها وظيفتان: تجمع الأرقام، وتلصق النصوص. فإذا كان أحد الطرفين نصاً، تختار JavaScript اللصق:
console.log("5" + 3);console.log("5" - 3);console.log("5" * "2");53210في السطر الأول لصقت 3 بجانب النص "5". أما الطرح والضرب فليس لهما معنى مع النصوص، فحوّلت JavaScript النصوص إلى أرقام تلقائياً. هذا التحويل التلقائي مصدر أخطاء كثيرة للمبتدئين، فاحرص على أن تكون أرقامك أرقاماً حقيقية لا نصوصاً.
عمليات المقارنة
Section titled “عمليات المقارنة”المقارنة تسأل سؤالاً، والجواب دائماً قيمة منطقية: true أو false.
| العملية | الرمز | المعنى |
|---|---|---|
| أكبر من | > |
7 > 3 |
| أصغر من | < |
7 < 3 |
| أكبر من أو يساوي | >= |
7 >= 7 |
| أصغر من أو يساوي | <= |
7 <= 6 |
| يساوي تماماً | === |
5 === 5 |
| لا يساوي تماماً | !== |
5 !== 3 |
console.log(7 > 3, 7 < 3, 7 >= 7, 7 <= 6);
let password = "1234";console.log(password.length >= 8);true false true falsefalseفي المثال الثاني سألنا: هل طول كلمة المرور 8 حروف أو أكثر؟ والإجابة false. (سنتعرف على .length في الدرس القادم).
الفرق المهم: == و ===
Section titled “الفرق المهم: == و ===”في JavaScript علامتان للمساواة:
==(المساواة المتساهلة): تحوّل الطرفين إلى نفس النوع أولاً، ثم تقارن.===(المساواة الصارمة): تقارن القيمة والنوع معاً، بدون أي تحويل.
console.log(5 == "5");console.log(5 === "5");console.log(5 != "5");console.log(5 !== "5");console.log(0 == false, 0 === false);truefalsefalsetruetrue falseتخيّل حارس أمن على باب. الحارس المتساهل == يرى رقم 5 ونص "5" ويقول: «يشبهان بعضهما، تفضلا». أما الحارس الصارم === فيقول: «أحدكما رقم والآخر نص، أنتما مختلفان».
جرّب بنفسك
Section titled “جرّب بنفسك”احسب سعر 3 قطع من منتج، ثم أضف رسوم التوصيل، وتحقق إن كان المبلغ أكبر من 100. غيّر السعر والكمية وشاهد النتيجة:
الناتج
أخطاء شائعة
Section titled “أخطاء شائعة”- استخدام = للمقارنة: العلامة
=للإسناد (وضع قيمة)، أما المقارنة فبـ===. كتابةage = 18تغيّر قيمة المتغير ولا تسأل عنها. - جمع أرقام مخزنة كنصوص:
"10" + "5"تعطي"105"وليس15. تأكد من نوع بياناتك. - نسيان ترتيب العمليات:
10 + 5 / 5تساوي11وليس3. استخدم الأقواس لتكتب ما تقصده بالضبط.
اختبر نفسك
Section titled “اختبر نفسك”سؤال
ما ناتج 17 % 5؟
17 مقسومة على 5 تساوي 3 والباقي 2، والعلامة % تعطي الباقي.
سؤال
ما ناتج 5 === '5'؟
المقارنة الصارمة === تقارن النوع أيضاً، والطرف الأول رقم والثاني نص، فالنتيجة false.
الخلاصة
Section titled “الخلاصة”- العمليات الحسابية:
+و-و*و/و%(الباقي) و**(الأس). - الضرب والقسمة قبل الجمع والطرح، والأقواس تغيّر الترتيب.
- اختصارات مثل
++و+=و-=توفر عليك الكتابة. +مع النصوص تلصق ولا تجمع.- المقارنات تعطي
trueأوfalse، واستخدم دائماً===بدلاً من==.