JavaScript - النطاق (Scope)

JavaScript - النطاق (Scope)

🔸 النطاق (Scope) هو المنطقة التي يكون فيها المتغير قابلًا للوصول أو مرئيًا. في JavaScript، هناك عدة أنواع من النطاقات:

  • النطاق العام (Global Scope): متغير معرف خارج أي دالة أو كتلة.
  • نطاق الدالة (Function Scope): متغير معرف داخل دالة ولا يُرى خارجها.
  • نطاق الكتلة (Block Scope): متغير معرف داخل كتلة باستخدام let أو const.
---

🔹 النطاق العام


let x = 10;

function show() {
  console.log(x); // يمكن الوصول إلى x
}
show();
---

🔹 نطاق الدالة


function test() {
  let message = "مرحبا";
  console.log(message);
}

test();
console.log(message); // ❌ ReferenceError

📌 لا يمكن الوصول إلى message خارج الدالة.

---

🔹 نطاق الكتلة (Block Scope)


{
  let a = 5;
  const b = 10;
  var c = 15;
}

console.log(a); // ❌ ReferenceError
console.log(b); // ❌ ReferenceError
console.log(c); // ✅ 15

📌 let و const لهم نطاق كتلة، بينما var يتجاهل الكتلة ويُرفع للنطاق الخارجي.

---

🔹 تداخل النطاقات


let x = 1;

function outer() {
  let x = 2;
  function inner() {
    let x = 3;
    console.log(x); // 3
  }
  inner();
}
outer();

📌 يتم تطبيق أقرب تعريف للنطاق أولًا (من الداخل إلى الخارج).

---

⚠️ ملاحظات مهمة

  • استخدم let و const للحصول على نطاق واضح وآمن.
  • تجنب var لتفادي سلوك الرفع (hoisting) ونطاقه الواسع.
  • فهم النطاق يُساعدك على منع التعارضات بين المتغيرات.

تعليقات

المشاركات الشائعة من هذه المدونة

C# - Arrays

Entity Framework - ما هو ORM؟ ونبذة عن Dapper وNHibernate

Entity Framework - مقدمة عن Entity Framework