الرجوع الي الدرس

هل المتغير مَرئي؟

الأهمية: 4

ماذا سيكون الناتج من هذا الكود؟

let x = 1;

function func() {
  console.log(x); // ?

  let x = 2;
}

func();

ملحوظة: هناك خدعة في هذه المهمة. الحل ليس واضحاً بما فيه الكفاية.

الناتج: خطأ.

جرب الكود للتأكد:

let x = 1;

function func() {
  console.log(x); // ReferenceError: لا نستطيع الوصول لـ 'x' قبل إعطائها قيمة
  let x = 2;
}

func();

In this example we can observe the peculiar difference between a “non-existing” and “uninitialized” variable.

أو بطريقة أخرى, المُتغير تقنياً موجود, لكن ا تستطيع الوصول له قبل let.

الكود فى الأعلي وضح ذلك.

function func() {
// المتغير المحلي X يعتبر معروف للمحرك من البداية, لكن **غير معرف بقيمة** تظل حتي let
  // لذلك هناك خطأ

  console.log(x); // ReferenceError: لا نستطيع الوصول لـ 'x' قبل إعطائها قيمة

  let x = 2;
}

هذه المنطقة من المتغيرات المؤقتة الغير مستخدمة من بداية الكود حتي let تسمي بالمنطقة الميتة