📦 ما هي المتغيرات ولماذا نحتاجها؟
المتغير (Variable) هو حاوية (Container) لتخزين قيمة معينة في ذاكرة الكمبيوتر. تخيله كصندوق له اسم مكتوب عليه، وبداخله قيمة يمكنك استخدامها أو تغييرها لاحقاً.
بدون متغيرات، لن تستطيع:
- 📝 تخزين اسم المستخدم بعد تسجيل الدخول
- 🛒 حفظ سعر المنتجات في عربة التسوق
- 🎮 تتبع نقاط اللاعب في لعبة
- 📊 جمع البيانات من نموذج ومعالجتها
تخيل إنك بتشتري من سوبر ماركت. كل منتج له سعر (متغير) وكمية (متغير تاني). عند الخروج، الكاشير يجمع كل الأسعار (المتغيرات) ويحسب الإجمالي. هذا بالضبط ما تفعله المتغيرات في البرمجة!
🔑 الفرق بين let, const, و var
JavaScript توفر ثلاث طرق لإنشاء متغيرات. كل واحدة لها استخدامها الخاص وسلوكها المختلف. فهم الفرق بينهم ضروري لكتابة كود نظيف وخالٍ من الأخطاء.
1. let — المتغير القابل للتغيير
تُستخدم let لإنشاء متغير يمكن تغيير قيمته لاحقاً. هذا هو الخيار الافتراضي في معظم الحالات.
2. const — الثابت الذي لا يتغير
تُستخدم const للقيم التي لن تتغير أبداً أثناء تنفيذ البرنامج. مثال: قيمة PI، رقم API، إعدادات التطبيق.
3. var — القديم الذي يجب تجنبه
var هو الطريقة القديمة لإنشاء متغيرات (منذ إصدار JavaScript عام 1995). لها مشاكل خطيرة في Hoisting و Function Scope تجعل الكود صعب التنبؤ به.
استخدم const افتراضياً. إذا احتجت تغيير القيمة، استخدم let. تجنب var تماماً في أي كود جديد.
🎯 أنواع البيانات في JavaScript
JavaScript هي لغة dynamically typed — أي أنك لا تحتاج لتحديد نوع المتغير عند إنشائه. المتصفح يكتشف النوع تلقائياً. لكن فهم الأنواع ضروري لتجنب الأخطاء.
1. String — النصوص
تُستخدم لتخزين النصوص. يمكن كتابتها بين علامات تنصيص مفردة ('), مزدوجة ("), أو backticks (`).
2. Number — الأرقام
JavaScript لا تميز بين الأعداد الصحيحة (Integer) والعشرية (Float). كلاهما نوع Number.
3. Boolean — القيم المنطقية
نوع بسيط يأخذ قيمتين فقط: true (صح) أو false (خطأ). يُستخدم في جمل الشرط.
4. Undefined — غير معرف
قيمة تلقائية للمتغيرات التي أُعلنت لكن لم تُسند إليها قيمة.
5. Object — الكائنات
تُستخدم لتخزين مجموعة من البيانات المترابطة (Key-Value pairs).
6. Array — المصفوفات
قائمة مرتبة من القيم. يمكن أن تحتوي على أنواع مختلفة.
🔍 التحقق من نوع البيانات باستخدام typeof
المشغل typeof يُستخدم لمعرفة نوع أي قيمة. هذا مفيد جداً عند التحقق من صحة البيانات المدخلة.
typeof null يرجع "object" وهذا خطأ معروف في JavaScript منذ عام 1995 ولم يُصلح للحفاظ على التوافق مع الإصدارات القديمة. لذا استخدم === null للتحقق من null.
✅ قواعد تسمية المتغيرات الاحترافية
تسمية المتغيرات بشكل صحيح تجعل الكود قابلاً للقراءة والصيانة. اتبع هذه القواعد:
القواعد الأساسية:
- ✅ ابدأ بحرف أو _ أو $:
name,_private,$element - ✅ يمكن استخدام أرقام بعد الحرف الأول:
user1,item2 - ✅ حساس لحالة الأحرف:
name≠Name≠NAME - ❌ لا مسافات:
user nameخطأ - ❌ لا كلمات محجوزة:
let,const,if,function
التسميات الاحترافية (Naming Conventions):
- استخدم أسماء وصفية:
totalPriceأفضل منtpأوx - استخدم أفعال للدوال:
getUser(),calculateTotal(),isValid() - تجنب الأسماء المختصرة غير المعروفة:
cntبدلاً منcountسيء - كن متسقاً — اختر convention واحداً واستخدمه في كل المشروع
🔄 تحويل أنواع البيانات
أحياناً تحتاج لتحويل نوع بيانات من نوع لآخر. JavaScript توفر عدة طرق لهذا:
التحويل الضمني (Implicit) — احذره!
التحويل الصريح (Explicit) — الأفضل دائماً
⚠️ أخطاء شائعة في استخدام المتغيرات
🏆 أفضل الممارسات في التعامل مع المتغيرات
- 📌 استخدم const افتراضياً: 90% من المتغيرات لا تحتاج للتغيير
- 📌 أعلن المتغيرات في أعلى النطاق: يُحسّن القراءة
- 📌 تجنب var: يسبب مشاكل Hoisting و Scope
- 📌 استخدم أسماء وصفية: الكود يُقرأ أكثر مما يُكتب
- 📌 تحقق من الأنواع: خاصة مع بيانات المستخدم
- 📌 لا تترك undefined: أعطِ قيمة افتراضية عند الإعلان
🚀 الخطوة التالية: العمليات الحسابية والمنطقية
في الدرس الثالث، ستتعلم:
- ➕ العمليات الحسابية: +, -, *, /, %, **
- 🔍 عمليات المقارنة: ==, ===, !=, >, <
- 🔗 العمليات المنطقية: &&, ||, !
- 📝 جمل الشرط: if, else if, else