Scope
در جاوااسکریپت، Scope محدودهای است که متغیرها، توابع و پارامترها در آن قابل دسترسی هستند.
Scope تعیین میکند متغیرها کجا قابل دسترس هستند و کجا نه.
🔹 انواع Scope در جاوااسکریپت
1. Global Scope (سطح جهانی)
-
متغیرهایی که در خارج از هر تابع یا بلاک تعریف شدهاند، در کل برنامه قابل دسترسی هستند.
2. Function Scope (محدوده تابع)
-
متغیرهایی که با
varدر یک تابع تعریف شدهاند، فقط داخل همان تابع قابل دسترسی هستند.
⚠️ توجه:
varتابعمحور است، نه بلوکمحور.
3. Block Scope (محدوده بلوک)
-
متغیرهایی که با
letیاconstدر یک بلوک{}تعریف شدهاند، فقط داخل همان بلوک قابل دسترسی هستند.
🔹 Lexical Scope (محدوده لغوی)
-
جاوااسکریپت از Lexical Scoping استفاده میکند، یعنی متغیرها بر اساس محل تعریفشان در کد قابل دسترسی هستند.
🔹 Scope و Closure
-
Closure زمانی ایجاد میشود که یک تابع به متغیرهای خارج از خود دسترسی دارد.
-
این ویژگی برای حفظ دادههای خصوصی کاربرد دارد.
✅ خلاصه
-
Global Scope → کل برنامه
-
Function Scope → متغیرهای
varداخل تابع -
Block Scope → متغیرهای
letوconstداخل بلوک -
Lexical Scope → دسترسی بر اساس محل تعریف متغیر
-
Closure → دسترسی تابع به متغیرهای بیرونی و حفظ وضعیت
HTML
Tailwind Css
Bootstrap 5
Java script
++C
Python
Three.js
Gsap
Sass
SQL
React