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

در این درس در مورد متغیرهای محلی و سراسری توضیح میدهیم.

هنگامی که یک متغیر را بیرون از همه توابع تعریف کنید، آن متغیر را متغیر سراسری مینامند، چونکه آن در همه کدها در سند فعلی قابل دسترس است. هنگامی که یک متغیر را درون تابع تعریف میکنید آن متغیر را متغیر محلی مینامند، چونکه آن فقط درون تابع قابل دسترس است.

برای مثال خروجی کد زیر 5 میشود، زیرا دامنه متغیر x عبارت شرطی (یا عبارت سراسری) است که در آن  x تعریف شده است.

if (true) {

  var x = 5;

}

console.log(x);  // 5

هنگامی که متغیر را با let تعریف میکنیم عملکرد متغیر تغییر میکند.

if (true) {

  let y = 5;

}

console.log(y);  // ReferenceError: y is not defined

 

بالا بردن متغیر – variable hoisting

 

یکی دیگر از ویژگیهای غیر عادی در جاوا اسکریپت این است که میتوان یک متغیر را قبل از اینکه تعریف کنیم از آن استفاده کنیم، بدون اینکه خطایی رخ بدهد! به این مفهوم بالا بردن (hoisting) میگویند. به هر حال متغیرهایی که تعریف نشده اند مقدار undefined را بر میگردانند.

/**

 * Example 1

 */

console.log(x === undefined); // logs "true"

var x = 3;


/**

 * Example 2

 */

// will return a value of undefined

var myvar = "my value";


(function() {

  console.log(myvar); // undefined

  var myvar = "local value";

})();

 

مثال بالا به صورت زیر تفسیر خواهد شد :

 

/**

 * Example 1

 */

var x;

console.log(x === undefined); // logs "true"

x = 3;


/**

 * Example 2

 */

var myvar = "my value";


(function() {

  var myvar;

  console.log(myvar); // undefined

  myvar = "local value";

})();

 

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

 

متغیرهای سراسری در حقیقت ویژگی اشیای سراسری هستند. در صفحات وب window شی سراسری است، بنابراین میتوان با استفاده از سینتکس window.variable به متغیرهای سراسری دسترسی پیدا و تنظیم کرد.

در نتیجه، میتوان به متغیر سراسری تعریف شده در یک window یا iframe توسط مشخص کردن نام window یا iframe در پنجره یا فریم دیگری دسترسی پیدا کرد. برای مثال، اگر یک متغیر به نام phoneNumber در یک سند تعریف شده باشد، میتوان به این متغیر از یک iframe به این شکل parent.phoneNumber ارجاع داد.

ثابتها

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

const prefix = '212';

مقدار یک ثابت را نمیتوان در هنگام اجرای اسکریپت تغییر داد یا دوباره تعریف کرد.

اگر کلمه کلیدی const نوشته نشود شناسه به عنوان یک متغیر در نظر گرفته میشود.

یک ثابت را نمیتوان با نام متغیر یا تابع در یک دامنه هم نام قرار داد. برای مثال :

// THIS WILL CAUSE AN ERROR

function f() {};

const f = 5;


// THIS WILL CAUSE AN ERROR ALSO

function f() {

  const g = 5;

  var g;


  //statements

}

 

دیدگاه‌ها

در چه حالتي امكان استفاده از متغيرهاي تعريف نشده داده نميشود ؟ 

افزودن دیدگاه جدید

دیدگاه

  • تگ‌های HTML مجاز: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd> <img>
  • خطوط و پاراگراف‌ها بطور خودکار اعمال می‌شوند.
  • نشانی صفحه‌ها وب و پست الکترونیک بصورت خودکار به پیوند تبدیل می‌شوند.

Plain text

  • تگ‌های HTML مجاز نیستند.
  • نشانی صفحه‌ها وب و پست الکترونیک بصورت خودکار به پیوند تبدیل می‌شوند.
  • خطوط و پاراگراف‌ها بطور خودکار اعمال می‌شوند.
كد امنيتي
این پرسش برای جلوگیری از ارسال اسپمهای اتوماتیک است.