نطاق JavaScript: Block، Global، و Function

يحدد النطاق (Scope) المكان الذي يمكنك فيه استخدام المتغير في الكود الخاص بك.

  1. النطاق العالمي (Global Scope) تعيش المتغيرات خارج الدوال (functions) أو الكتل (blocks). يمكنك الوصول إليها من أي مكان في السكربت الخاص بك. تحذير: تؤدي المتغيرات العالمية إلى حدوث أخطاء (bugs) لأن أي جزء من الكود الخاص بك يمكنه تغييرها.

  2. النطاق الوظيفي (Function Scope) تعيش المتغيرات داخل الدالة. يمكنك الوصول إليها فقط ضمن تلك الدالة المحددة.

  3. النطاق الكتلي (Block Scope) ينطبق هذا على JavaScript الحديثة باستخدام let أو const. تعيش المتغيرات داخل الأقواس المتعرجة {}. تتضمن الكتلة (block):

ملخص النطاق (Scope):

فهم العمليات (Processes) والخيوط (Threads)

العملية (Process) هي برنامج قيد التشغيل وله ذاكرته الخاصة. فكر في WhatsApp كعملية.

الخيط (Thread) هو جزء صغير من العملية. وتتشارك الخيوط في نفس الذاكرة.

مثال على WhatsApp: عملية واحدة (WhatsApp) تشغل خيوطاً متعددة:

Source: https://freeacademy.ai/lessons/global-vs-function-vs-block-scope Source: https://josephcardillo.medium.com/the-difference-between-function-and-block-scope-in-javascript-4296b2322abe