0Pricing
JavaScript Academy · درس

let وconst وتجنّب var

أساسيات let وconst، وأسباب تجنّب var، ونطاق الكتلة، ومقدمة مبسطة إلى المنطقة الزمنية الميتة (TDZ).

let وconst وتجنّب var درس مجاني في JavaScript Academy على CoddyKit. هذا هو الدرس 1 من أصل 3. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في JavaScript Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة JavaScript Academy 3 دروس في المجموع.

مقدمة

الهدف: استخدم let وconst بثقة، وتجنب var القديمة، وافهم نطاق الكتلة وTDZ.

  • let في مقابل const
  • نطاق الكتلة
  • أمان TDZ
let وconst وتجنّب var — رسم توضيحي 1

أساسيات let في مقابل const

القاعدة: استخدم const ما لم تكن تخطط لإعادة الإسناد؛ وإلا فاستخدم let.

// Prefer const by default; use let when you need to reassign
const appName = "CoddyKit";   
// cannot reassign
let score = 0;                
// can reassign

score = score + 1;
console.log("App:", appName);
console.log("Score:", score);
let وconst وتجنّب var — رسم توضيحي 2

لماذا نتجنب var

تجنب var للأسباب التالية:

  • نطاقها هو نطاق الدالة وليس نطاق الكتلة.
  • تُرفَع، ويمكن قراءة قيمتها كـ undefined قبل التصريح بها.
  • تجعل إعادة هيكلة الشيفرة أصعب وأقل قابلية للتنبؤ.
let وconst وتجنّب var — رسم توضيحي 3

تجربة نطاق الكتلة

يساعد نطاق الكتلة في إبقاء المتغيرات محلية والحفاظ على ترتيب الشيفرة.

// Block scope: variables exist only inside the braces
let lives = 3;

if (true) {
  const bonus = 10;      
 // only inside this block
  let level = 2;          
// only inside this block
  console.log("Inside:", bonus, level);
}

console.log("Lives:", lives);
// The following would be ReferenceError if uncommented:
// console.log(bonus, level);
let وconst وتجنّب var — رسم توضيحي 4

TDZ (تجربة آمنة)

TDZ: لا يمكن قراءة متغير let أو const قبل سطر التصريح به؛ وهذا يمنع كثيرًا من الأخطاء.

// TDZ: accessing let/const before declaration throws ReferenceError
try {
  // Uncommenting next line would throw:
  // console.log(theme);   
  // ReferenceError (TDZ)
  let theme = "dark";
  console.log("Theme after declare:", theme);
} catch (e) {
  console.log("Caught:", e.message);
}
let وconst وتجنّب var — رسم توضيحي 5

التسمية والنصائح

التسمية:

  • استخدم أسماء واضحة للبيانات (userName وscore).
  • استخدم أفعالًا للدوال (computeTotal).
  • حافظ على ضيق النطاق؛ وصرّح بالمتغير قريبًا من موضع استخدامه.
let وconst وتجنّب var — رسم توضيحي 6

اختبار let في مقابل const

تحقّق سريع: نطاق الكتلة وإعادة الإسناد.

let وconst وتجنّب var — رسم توضيحي 7

مراجعة

مراجعة: فضّل const، واستخدم let عندما تحتاج إلى إعادة الإسناد، وتجنب var. يحافظ نطاق الكتلة على محلية المتغيرات، ويحمي TDZ من أخطاء الوصول المبكر.

let وconst وتجنّب var — رسم توضيحي 8

الأسئلة الشائعة

هل درس «let وconst وتجنّب var» مجاني؟

نعم — نص درس «let وconst وتجنّب var» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة JavaScript Academy، انتقل إلى CoddyKit PRO. تتضمن دورة JavaScript Academy 3 دروس في المجموع.

ماذا ستتعلم في «let وconst وتجنّب var»؟

أساسيات let وconst، وأسباب تجنّب var، ونطاق الكتلة، ومقدمة مبسطة إلى المنطقة الزمنية الميتة (TDZ). تتمرن على JavaScript Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ JavaScript Academy؟

لا تُشترط خبرة سابقة. JavaScript Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 3.

كم من الوقت يستغرق درس «let وconst وتجنّب var»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس JavaScript Academy هذا؟

نعم. كل درس في JavaScript Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. let وconst وتجنّب var
  2. نطاق الكتلة والدالة والوحدة وTDZ
  3. التسمية وقابلية القراءة والمشكلات الشائعة
← العودة إلى JavaScript Academy