Udemy24 Logo Liight

محدوده (Scope) متغیرها در جاوا اسکریپت

محدوده تابع در جاوا اسکریپت

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

  • محدوده محلی (Local)
  • محدوده سراسری (Global)

هر تابع در زبان جاوا اسکریپت یک محدوده جدید ایجاد می‌کند. محدوده‌ها در جاوا اسکریپت محدوده قابل دسترس متغیرها را تعیین می‌کنند. متغیرهایی که در داخل تابع تعریف می‌شوند در خارج از تابع در دسترس نیستند.

 متغیرهای محلی در جاوا اسکریپت

متغیرهایی که داخل یک تابع جاوا اسکریپت تعریف می‌شوند، متغیرهای محلی هستند. متغیرهای محلی دارای تابع محدوده می‌باشند، این متغیرها تنها می‌توانند از درون تابع به آن‌ها دسترسی داشته باشند.

مثال:

از آنجا که متغیرهای محلی تنها در توابع خودشان شناخته شده هستند، می‌توان در توابع مختلف از متغیرهای با نام یکسان استفاده کرد. متغیرهای محلی زمانی ایجاد می‌شوند که یک تابع اجرا می‌شود و وقتی کار تابع تمام می‌شود، حذف می‌شوند.

 متغیرهای سراسری در  جاوا اسکریپت

متغیرهایی که در خارج از یک تابع تعریف می‌شود، متغیرهای سراسری هستند. یک متغیر سراسری دارای محدوده سراسری است، تمام اسکریپت‌ها و توابع روی صفحه وب می‌توانند به آن دسترسی داشته باشند.

مثال:

متغیرهای جاوا اسکریپت

در جاوا اسکریپت، اشیا و توابع نیز متغیر هستند. محدوده‌ها، قابلیت دسترسی متغیرها، اشیا و توابع را در بخش‌های مختلف کد تعیین می‌کند.

متغیرهای سراسری خودکار

اگر یک مقدار را به متغیری بدهید که تعریف نشده است، به صورت خودکار به یک متغیر سراسری (Global) تبدیل خواهد شد. مثال زیر، کد یک متغیر سراسری carName را تعریف خواهد کرد، حتی اگر مقدار در داخل یک تابع تخصیص داده شود.

Strict Mode

همه مرورگرهای مدرن از اجرای جاوا اسکریپت در Strict Mode پشتیبانی می‌کنند. متغیرهای سراسری به صورت خودکار در حالت Strict Mode ایجاد نمی‌شوند.

متغیرهای سراسری در  HTML

با جاوا اسکریپت، محدوده سراسری یک محیط جاوا اسکریپت کامل است. در HTML، شئ window محدوده سراسری است، تمام متغیرهای سراسری متعلق به شی window هستند.

مثال:

توجه کنید که: 

تا زمانی که احتیاج نیست، متغیرهای سراسری را ایجاد نکنید.
متغیرهای (یا توابع)  سراسری می‌توانند متغیرهای (یا توابع) window را بازنویسی کنند.
هر تابعی از جمله شئ window می‌تواند متغیرهای سراسری شما را بازنویسی کند.

طول عمر متغیرهای جاوا اسکریپت

طول عمر یک متغیر جاوا اسکریپت به هنگام تعریف آن آغاز می‌شود. وقتی تابع کامل شود (کار تابع به اتمام برسد)، متغیرهای محلی حذف می‌شوند.
در یک مرورگر وب، هنگامی که شما پنجره مرورگر یا تب (tab) را ببندید، متغیرهای سراسری حذف می‌شوند، اما همچنان برای صفحات جدید بارگذاری شده درون همان پنجره قابل دسترسی هستند.

آرگومان‌های تابع

آرگومان‌های تابع (پارامترها) به عنوان متغیرهای محلی درون توابع کار می‌کنند.

فهرست