اذا لم تجد ما تبحث عنه يمكنك استخدام كلمات أكثر دقة.
يمكن أن يختلف النطاق من تعبير واحد إلى أخر من كل البرنامج، مع وجود العديد من التدرجات الممكنة بينهما. أبسط قاعدة لتحديد النطاق هي النطاق العالمي - جميع الكيانات مرئية طوال البرنامج بأكمله. قاعدة الفحص المعيارية الأساسية هي تحديد النطاق على مستويين، مع نطاق عام (global scope) في أي مكان في البرنامج، ونطاق محلي (Local scope) ضمن إحدى الوظائف. تسمح البرمجة المعيارية الأكثر تعقيدًا بنطاق وحدة منفصلة، حيث تكون الأسماء مرئية داخل الوحدة (خاصة إلى الوحدة) ولكنها غير مرئية خارجها. داخل بعض الوظائف، تسمح بعض اللغات ، مثل C ، بنطاق الحظر لتقييد النطاق لمجموعة فرعية من الدالة ؛ الآخرين ، ولا سيما اللغات الوظيفية ، تسمح بنطاق التعبير ، لتقييد النطاق إلى تعبير واحد. تتضمن النطاقات الأخرى نطاق الملف (لا سيما في C) ، والذي يعمل بشكل مشابه لنطاق الوحدة النمطية ، ويمنع النطاق خارج الوظائف (خاصة في Perl).
المشكلة الدقيقة هي بالضبط عندما يبدأ النطاق وينتهي. في بعض اللغات ، كما هو الحال في C ، يبدأ النطاق في الإعلان وبالتالي يمكن أن يكون للأسماء المختلفة المُعلنة داخل كتلة معينة نطاقات مختلفة. ويتطلب ذلك الإعلان عن الوظائف قبل الاستخدام ، على الرغم من عدم تحديدها بالضرورة ، ويتطلب الإعلان المسبق في بعض الحالات ، لا سيما عن التكرار المتبادل. بلغات أخرى ، مثل JavaScript أو Python ، يبدأ نطاق الاسم في بداية الكتلة المعنية (مثل بداية دالة) ، بغض النظر عن المكان الذي تم تعريفه ، ويكون لكل الأسماء الموجودة داخل كتلة معينة نفس النطاق ؛ في JavaScript يُعرف هذا باسم الرفع المتغير. ومع ذلك ، عندما يختلف الاسم إلى قيمة ، يختلف سلوك أسماء السياق التي لها قيمة غير محددة: في بايثون ، يؤدي استخدام المتغيرات غير المحددة إلى حدوث خطأ في وقت التشغيل ، بينما تكون متغيرات جافا سكريبت غير القابلة للاستخدام قابلة للاستخدام (مع قيمة غير محددة) ، ولكن يتم أيضًا رفع الإعلانات الدالة إلى الجزء العلوي من الدالة المحتوية واستخدامها خلال الدالة.