Scope

از ویکی‌کد، دانشنامهٔ برنامه‌نویسی
پرش به ناوبری پرش به جستجو
Main Page Tutorial
JavaScript-menu.png
موارد آموزشی
فرم‌ها در جاوا اسکریپت
اشیاء در جاوا اسکریپت
تابع در جاوا اسکریپت
HTML DOM در جاوا اسکریپت
Browser BOM در جاوا اسکریپت
AJAX در جاوا اسکریپت
JSON در جاوا اسکریپت
جی‌کوئری در برابر جاوا اسکریپت
مثال های جاوا اسکریپت
مرجع جاوا اسکریپت

Scope میزان دسترسی (میزان قابل مشاهده بودن) متغیرها را مشخص می‌کند. [۱]

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

در جاوا اسکریپت دو نوع Scope وجود دارد:

  • Scope محلی یا local
  • Scope جهانی یا کلی (به انگلیسی: Global)

جاوا اسکریپت دارای scope تابع است: هر تابع یک Scope جدید ایجاد می‌کند.

Scope میزان دسترسی (میزان قابل مشاهده بودن) متغیرها را مشخص می‌کند.

متغیرهایی که درون یک تابع تعریف می شوند از بیرون تابع قابل دسترسی (مشاهده) نیستند.

متغیرهای محلی (به انگلیسی: LOCAL) در جاوا اسکریپت

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

متغیرهای محلی scope تابع را دارند: آنها تنها می‌توانند از درون خود تابع مورد دسترسی واقع شوند.

مثال

1 // code here can NOT use carName
2 
3 function myFunction() {
4   var carName = "Volvo";
5 
6   // code here CAN use carName
7 
8 }


مشاهدهٔ نتیجه


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

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

متغیرهای جهانی، کلی (به انگلیسی: Global) در جاوا اسکریپت

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

یک متغیر کلی یا جهانی یا global دارای scope جهانی یا global است: تمامی اسکریپت‌ها وتوابع درون یک صفحه وب می‌تواننند به آن دسترسی داشته باشند.

مثال

1 var carName = "Volvo";
2 
3 // code here can use carName
4 
5 function myFunction() {
6 
7   // code here can also use carName
8 
9 }


مشاهدهٔ نتیجه


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

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

Scope میزان دسترسی به متغیرها، اشیاء و توابع را از بخش‌های مختلف کد مشخص می‌کند.

متغیر جهانی (به انگلیسی: Global) خودکار

اگر شما مقداری را به یک متغیر که تعریف نشده انتساب دهید، این متغیر به صورت خودکار به عنوان یک متغیر جهانی یا GLOBAL شناخته می‌شود.

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

مثال

1 myFunction();
2 
3 // code here can use carName
4 
5 function myFunction() {
6   carName = "Volvo";
7 }


مشاهدهٔ نتیجه


مد یا حالت سخت گیرانه

تمامی مرورگرهای مدرن جاوا اسکریپت را “حالت سخت گیرانه (به انگلیسی: strict mode)” اجرا می‌کنند.

شما مطالب بیشتری را در مورد اینکه چگونه از مد یا حالت سخت گیرانه (strict mode) در فصل‌های آینده از این آموزش خواهید آموخت.

متغیرهای جهانی یا کلی یا Global به صورت خودکار در “حالت سخت گیرانه (به انگلیسی: strict mode)” ایجاد نمی‌شوند.

متغیرهای کلی (به انگلیسی: Global) در HTML

در جاوا اسکریپت، scope جهانی یا کلی شامل کل محیط جاوا اسکریپت می‌شود.

در HTML, scope جهانی یا کلی یا Global شی پنجره یا Window است. تمامی متغیرهای کلی یا Global به شیء پنجره|شیء پنجره (به انگلیسی: window) وابسته هستند.

مثال

1 var carName = "Volvo";
2 
3 // code here can use window.carName


مشاهدهٔ نتیجه


هشدار

متغیرهای کلی (به انگلیسی: Global) ایجاد نکنید مگر اینکه به آن نیاز داشتید.

متغیرها (یا توابع کلی یا Global) می‌توانند متغیرها یا توابع شیء پنجره یا window را بازنویسی کنند.

هر تابعی، که شامل شیء Window یا پنجره نیز می‌شود، می‌تواند توابع و متغیرهای کلی یا جهانی یا Global شما را بازنویسی کند.

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

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

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

در نرم‌افزارهای مروگر وب، متغیرهای جهانی یا Global زمانی که شما پنجره مرورگر (و یا زبانه) را می‌بندید حذف می‌شوند اما برای صفحات جدیدی که در پنجره یکسان بارگذاری می‌شوند همچنان در دسترس خواهند بود.

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

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


منابع آموزشی