في عالم يفقد السيطرة 🌀 عالم البرمجة لك

borma logo
person

النهاردة هنتكلم عن:

✅ الفرق بين var, let, const
نطاق كل متغير (Scope) وتأثيره
كيف يتم تخزينهم في الذاكرة؟
أفضل الممارسات لاستخدامهم

 الفرق بين var, let, const

الجدول const let var

نطاق المتغير (Scope)

Block Scope Block Scope (بيشتغل جوا الأقواس {} بس) Function Scope (بيشتغل جوا الفانكشن بس)

إعادة التعريف (Redeclaration)

❌ لا يمكن إعادة تعريفه ❌ لا يمكن إعادة تعريفه ينفع تعيد تعريفه في نفس النطاق

إعادة الإسناد (Reassignment)

❌ لا يمكن تغيير قيمته بعد تعريفها ينفع تغير قيمته ينفع تغير قيمته

Hoisting

نفس let بيكون في “Temporal Dead Zone” بيرتفع لكن بيكون في “Temporal Dead Zone” بيرتفع (بيتم تعريفه قبل تشغيل الكود، لكن بدون قيمة)

مثال عملي

 

🔹 تأثير var, let, const على الذاكرة

الذاكرة في JavaScript بتشتغل بطريقة ذكيه وكل نوع من المتغيرات ليه تأثير على الأداء:

  • var بيتخزن في الـ Global Scope لو اتعرف خارج فانكشن → وده ممكن يعمل مشاكل كبيرة.
  • let و const بيتخزنوا في الـ Block Scope → وبالتالي بيتم مسحهم لما البلوك ينتهي.
  • const مش بيتغير فبيكون أسرع في الأداء لإنه بيتم تخزينه كـ Read-Only

مثال عملي على تأثيرهم في الذاكرة

10 20 30

 

bell.svg

var بيستهلك ذاكرة أكتر لإنه ممكن يفضل متخزن حتى بعد انتهاء الفانكشن

check.svg

let و const بيتم التعامل معاهم بكفاءة أكتر لإنهم بيتمسحوا لما البلوك ينتهي.

 

📌 إمتى تستخدم var, let, const؟

  •  استخدم const لما تكون متأكد إن المتغير مش هيتغير (ودي القاعدة الافتراضية).
  • استخدم let لما يكون المتغير هيتغير قيمته أثناء تنفيذ الكود
  • تجنب var قدر الإمكان لإنه ممكن يسبب مشاكل في النطاق (Scope).

📌 التــاسك 📝

  •  جرّب تعريف متغير باستخدام var, let, const، وجرب إعادة تعريفه وتغيير قيمته
  • استخدم console.log لفهم الفرق في النطاق (Scope) لكل نوع
  •  جرب تعمل Hoisting على var وشوف النتيجة، وبعدها جربه مع let و const

اكتب في الكومنتات إيه أكتر حاجة كانت ملخبطة بالنسبالك؟

 

قسم التعليقات