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) ونطاقه الواسع. - فهم النطاق يُساعدك على منع التعارضات بين المتغيرات.
تعليقات
إرسال تعليق