محدوده (Scope) در جاوااسکریپت: بلوک، سراسری و تابع

محدوده (Scope) تعیین می‌کند که در کجای کد خود می‌توانید از یک متغیر استفاده کنید.

۱. محدوده سراسری (Global Scope) متغیرها خارج از توابع یا بلوک‌ها قرار دارند. شما می‌توانید از هر جای اسکریپت خود به آن‌ها دسترسی داشته باشید. هشدار: متغیرهای سراسری باعث ایجاد باگ می‌شوند، زیرا هر بخشی از کد شما می‌تواند آن‌ها را تغییر دهد.

۲. محدوده تابع (Function Scope) متغیرها داخل یک تابع قرار دارند. شما فقط در داخل همان تابع خاص به آن‌ها دسترسی دارید.

۳. محدوده بلوک (Block Scope) این مورد مربوط به جاوااسکریپت مدرن با استفاده از let یا const است. متغیرها داخل آکولادها {} قرار می‌گیرند. یک بلوک شامل موارد زیر است:

خلاصه محدوده (Scope):

درک فرآیندها (Processes) و رشته‌ها (Threads)

یک فرآیند (Process)، برنامه‌ای در حال اجرا با حافظه اختصاصی خود است. واتس‌اپ را به عنوان یک فرآیند در نظر بگیرید.

یک رشته (Thread)، بخش کوچکی از یک فرآیند است. رشته‌ها از حافظه مشترک استفاده می‌کنند.

مثال واتس‌اپ: یک فرآیند (واتس‌اپ) چندین رشته را اجرا می‌کند:

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