Scope
1️⃣ تعریف Scope (دامنه دسترسی)
Scope مشخص میکند کجا یک متغیر قابل دسترسی است.
در جاوااسکریپت سه نوع scope اصلی داریم: Global, Function, Block
2️⃣ Global Scope (دامنه سراسری)
متغیرهایی که خارج از هر تابع تعریف میشوند، در کل برنامه قابل دسترسی هستند:
3️⃣ Function Scope (دامنه تابع)
متغیرهای تعریف شده داخل یک تابع فقط درون همان تابع قابل دسترسی هستند:
4️⃣ Block Scope (دامنه بلوک)
با let و const میتوان متغیرهای بلوکی تعریف کرد که فقط درون بلوک {} قابل دسترسی هستند:
⚠️ با
varمتغیرها Block Scope ندارند و فقط Function Scope دارند
5️⃣ Nested Scope (دامنه تو در تو)
توابع داخلی به متغیرهای توابع بیرونی دسترسی دارند، اما برعکس نه:
6️⃣ Hoisting و Scope
-
متغیرهای
varقبل از تعریف hoisted میشوند (بالا میروند) -
letوconstقبل از تعریف دسترسی ندارند (خطای ReferenceError)
✅ نکات مهم
-
Scope مشخص میکند متغیرها کجا قابل استفاده هستند.
-
Global→ کل برنامه -
Function→ داخل تابع -
Block→ داخل بلوک{}(با let/const) -
توابع داخلی میتوانند به متغیرهای بیرونی دسترسی داشته باشند.
-
Hoisting روی
varاعمال میشود، ولیletوconstنه.
HTML
Tailwind Css
Bootstrap 5
Java script
++C
Python
Three.js
Gsap
Sass
SQL
React