‎‎ميدان جاوااسكريپتJavaScript Scope -‎

Previous >    <Next  

‎‎ميدان يا دامنه، محدوده قابل دسترسي يا مشاهده را براي متغير مشخص ميكند.

‎‎جاوااسكريپت داراي سه ميدان بشرح زير دارد:

‎‎ميدان بلوكيBlock Scope -‎

‎‎قبل از‎ES6 (2015)‎ جاوااسكريپت فقط داراي ميدان جهاني ياسراسري وتابعي بود .

‎درES6 دو كي ورد مهم وجديد‎let , const‎ را معرفي كرد، اين دو كي ورود ‎ميدان بلوكي را شامل ميشوند.

‎‎متغير هاي تعريف شده باآنها در يك بلوك‎{ }‎ نميتوانندخارج ارآن بلوك استفاده شوند.

‎‎مثال ـ تعريف متغير باlet

{
  let x = 2;
}
// x can NOT be used here

‎متغير هاي تعريف شده با‎var‎ ميدان بلوكي نيستند و آنها ميتوانند در بلوكهاي ديگر ‎هم استفاده شوند.

‎‎مثال ـ تعريف متغير باvar

{
  var x = 2;
}
// x CAN be used here

‎‎ميدان محليLocal Scope -‎

‎‎متغيرهاي تعريف شده در تابع جاوااسكريپت متغير محلي است .وآن هم داراي ميدان محلي ميباشد.

‎‎مثال ـ متغير محلي

// code here can NOT use carName

function myFunction() {
  let carName = "Volvo";
  // code here CAN use carName
}

// code here can NOT use carName

--(go to editor for change code and run)

‎‎متغيرهاي محلي ميدان تابعي دارند .آنها فقط داخل تابع تعريفي استفاده ميشوند.

‎ازانجائيكه متغير محلي فقط در تابع خودش قابل شناسائي است، متغيرها با نام يكسان ميتوان در ‎توابع مختلف تعريف نمود .اما آنها هيچ ارتباطي بهمديگر نداشته ومستقل ميباشند.

‎‎متغير محلي هنگامي كه تابع شروع ميشود، ايجاد وهنگاميكه پايان مي يابد حذف ميشود.

‎‎ميدان تابعيFunction Scope -‎

‎جاوااسكريپت داراي ميدان تابعي است وهرتابعي ميدان جديدي ايجاد ميكند .متغيري كه درتابعي ‎تعريف ميشود، نمي تواند خارج ازتابع دردسترس ويا مشاهده گردد.

‎متغيرهائي كه با‎var , let , const‎ در داخل تابع تعريف ميشوند، كاملا مشابه ‎هستند . وآنها داراي ميدان تابعي هستند.

function myFunction() {
  var carName = "Volvo";   // Function Scope
}
function myFunction() {
  let carName = "Volvo";   // Function Scope
}
function myFunction() {
  const carName = "Volvo";   // Function Scope
}

‎‎متغير هاي سراسري جاوااسكريپتGlobal JavaScript Variables -‎

‎‎متغير هائي كه در خارج از تابع تعريف ميشوند، متغيرهاي سراسري يا جهاني هستند.

‎‎مثال ـ متغير سراسري

let carName = "Volvo";
// code here can use carName

function myFunction() {
// code here can also use carName
}

--(go to editor for change code and run)

‎‎يك متغيرسراسري داراي ميدان سراسري‎(Global Scope)‎ ميباشد.

‎‎همه اسكريپت ها وتوابع در صفحه وب به آنها دسترسي دارند.

‎‎ميدان سراسري يا جهانيGlobal Scope -‎

‎متغيرهاي تعريف شده سراسري، يعني خارج از تابع داراي ميدان سراسري هستند.متغيرهاي فوق ‎‎در هر جائي ازبرنامه جاوااسكريپت قابل دسترس هستند.

‎متغيرهاي تعريف شده توسط‎var , let , const‎ در خارجه توابع از نظر ميدان كاملا ‎يكسان هستند .همه داراي ميدان سراسري‎‎ مي باشند.

var x=2;     // Golbal Scope

let x=2;     // Golbal Scope
const  x=2;     // Golbal Scope

‎‎متغيرهاي جاوااسكريپتJavaScript Vaiables -‎

‎‎در جاوااسكريپت اشياء و توابع همچنين متغير ميباشند.

‎‎ميدان متغير مشخص كننده فضاي قابل دسترسي متغير ميباشد .شئ ها وتوابع قسمتي از كدها ميباشند.

‎‎سراسري اتوماتيكAutomatically Global -‎

‎اگر مقداري را به متغيري نسبت دهيد‎(assinment)‎ كه تعريف نشده باشد، آن بصورت ‎خودكار متغير سراسري ميشود.

‎مثال ـ دركد زير متغير‎carNamr‎متغير سراسريست باتوجه باينكه اين متغير در تابع ‎مقدار دهي شده است .توجه شود اگر متغير در تابع تعريف ميشد، آن ديگر سراسري نبود.

myFunction();

// code here can use carName

function myFunction() {
  carName = "Volvo";
}

--(go to editor for change code and run)

‎‎حالت سخت گيرانهStrict Mode -‎

‎‎همه مرورگرهاي مدرن اجراي سختگيرانه جاوااسكريپت را پشتيباني ميكنند.

‎‎اطلاعات بيشتري در مورد استفاده ازحالت سخت گيرانه در فصل بعدي ارائه ميگردد.

‎‎در حالت سخت گيرانه متغير تعريف نشده بصورت خودكار سراسري نمي شود.

‎‎متغيرهاي سراسري در اچ تي ام الGlobal Variables in JavaScript -‎

‎‎با جاوااسكريپت ميدان سراسري در محيط جاوااسكريپت است.

‎‎درHTML ميدان سراسري شئ ويندوزاست .

‎‎متغيرهاي سراسري با كي ورد‎var‎ براي شئ ويندوز تعريف ميشوند .

‎‎مثال ـ تعريف متغير براي شئ ويندوز

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

--(go to editor for change code and run)

‎‎متغير سراسري تعريف شده با‎let‎ به شئ ويندوز تعلق ندارد .

‎‎مثال ـ تعريف متغير باlet

let carName = "Volvo";
// code here can not use window.carName

--(go to editor for change code and run)

‎‎هشدار ـ متغير هاي سراسري بيمورد ايجاد نكنيد.

‎‎متغيرهاي سراسري شما يا توابع ميتوانند در متغيرهاي ويندوز يا توابع بازنويسي شوند.

‎‎هر تابعي در شئ ويندوز ميتواند متغيرهاي سراسري وتوابع را بازنويسي كند.

‎‎طول عمر‎lifetime)‎ متغير هاي جاوااسكريپت

‎‎فعاليت متغير جاوااسكريپت با تعريف آن شروع ميگردد.

‎‎متغير هاي تابعي محلي هنگاميكه اجراي تابع بپايان ميرسد، حذف ميشوند.

‎‎در مرورگر وب متغيرهاي سراسري هنگاميكه آن بسته ميشود ، حذف ميشوند.

‎‎آرگومان تابعFunction Arguments -‎

‎آرگومان تابع آنهائي كه در پرانتز هستند، متغيرهاي محلي داخل تابع اند .وبا پايان اجرا حذف ‎ميشوند.


Previous >    <Next