ما هو النطاق فى الجافا سكريبت JavaScript Scope

اقرأ في هذا المقال


هل سبق لك أن كتبت كود (JavaScript) لم يعمل كما هو متوقع؟ ربما تكون قد حددت متغيرًا أو وظيفة في جزء واحد من التعليمات البرمجية الخاصة بك، لكنها لم تعمل بشكل صحيح عندما حاولت استخدامها في مكان آخر، هذا لأن (JavaScript) لديها شيء يسمى النطاق (Scope).

ما هو النطاق JavaScript Scope

في لغة البرمجة (JavaScript)، يشير النطاق (Scope) إلى سياق التعليمات البرمجية الخاصة بك، حيث يحدد هذا السياق أين يمكنك الوصول إلى متغيرات ووظائف معينة، بمعنى آخر، عندما تقرر تحديد متغير أو وظيفة في (JavaScript)، يؤثر ذلك على المكان الذي يمكنك الوصول إليه لاحقًا لذلك، إذا حددت متغيرًا داخل دالة فستتمكن فقط من الوصول إليه داخل تلك الوظيفة.

ما هي أنواع النطاق JavaScript Scope

هناك عدة أنواع من النطاق في (JavaScript) وهي:

1. النطاق العالمي Global Scope

بعبارات بسيطة، يُعرف المتغير الذي يمكن الوصول إليه في أي مكان في البرنامج بالمتغير ذي “النطاق العالمي”، كما يمكن تحديد المتغيرات ذات النطاق العالمي باستخدام أي من الكلمات الرئيسية الثلاث: (let و const و var)، حيث يؤدي استخدام النطاق العالمي إلى جعل الكود الخاص بك أقل قابلية لإعادة الاستخدام.

2. النطاق المحلي Local Scope

يقال إن أي متغير تعلنه داخل دالة له نطاق محلي، حيث يمكنك الوصول إلى متغير محلي يمكن أن يكون ضمن دالة، كما أنه إذا حاولت الوصول إلى أي متغير محدد داخل دالة من الخارج أو وظيفة أخرى، فسيؤدي ذلك إلى حدوث خطأ.

3. نطاق الكتلة Block Scope

مع إدخال الكلمات الرئيسية (let and const)، فقد أضاف نوعًا جديدًا من النطاق في (JavaScript) وهو (Block Scope)، حيث أنه لا يمكنك الوصول إلى المتغيرات التي تم الإعلان عنها داخل كتلة معينة (ممثلة بـ {}) من خارج الكتلة، كما أنه لا يعمل نطاق الكتلة مع الكلمة الأساسية (var)، حيث يمكنك إما استخدام الكلمات الرئيسية (let) أو (const) لذلك.

ما هي مزايا النطاق JavaScript Scope

يؤدي استخدام النطاق إلى عدد قليل من الفوائد، بما في ذلك:

  • الأمان: حيث أنه لا يمكن الوصول إلى المتغيرات والوظائف إلا عند الحاجة إليها.
  • تقليل تصادم مساحة الأسماء: تحدث تضاربات (Namespace) عندما يشترك متغيران أو أكثر في اسم شائع،  حيث يساعد تحديد نطاق المتغيرات في تقليل المتغيرات العامة التي تمنع حدوث ذلك.
  • إعادة استخدام الكود: ويعني استخدام النطاقات المحلية بشكل صحيح رمزًا أكثر قابلية لإعادة الاستخدام مع آثار جانبية محتملة أقل.

المصدر: JavaScript: The Good Parts,Douglas Crockford, 2008 edition .JavaScript: The Definitive Guide,David Flanagan, 2011 edition .PROFESSIONAL JAVASCRIPT: FOR WEB DEVELOPERS,Nicholas C. Zakas,2012 edition.A Smarter Way to Learn JavaScript / Author: Mark Myers


شارك المقالة: