روش‌های مختلف تعریف متغیرها در جاوا اسکریپت

روش‌های مختلف تعریف متغیرها در جاوا اسکریپت
در این آموزش قصد داریم روش‌های مختلف تعریف متغیرها در جاوا اسکریپت را برای‌تان توضیح دهیم. متغیرها ظرف‌هایی هستند که در موقعیت‌های مختلف مقادیر مختلفی  می‌گیرند. هر متغیر یک نام  و یا مقدار دارد که در داخل کد از آن استفاده خواهد شد. دستور ایجاد یک متغیر پیش از هر کد دیگری در برنامه اجرا می‌شود.
خرید شارژ ایرانسل
خرید شارژ ایرانسل، همراه اول، رایتل | خرید بسته های اینترنت ایرانسل | etore.ir
دانلود بازی اندروید
اندروید سیتی | بررسی و دانلود آخرین های اندروید
خرید سرور مجازی
ارائه سرور مجازی SSD NVMe برای اولین بار در ایران ؛ نهایت سرعت را تجربه کنید.
خودتان را اینجا معرفی کنید

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

 
1) اعلان:
متغیر یک نام منحصر بفرد گرفته و در محدوده‌ی اجرایی خودش ثبت می‌شود.
2)مقداردهی اولیه:
بعد از تعریف متغیر یک مقدار اولیه پیش فرض به آن داده می‌شود. در واقع متغیر ها مکان‌هایی از حافظه هستند که داده‌ها را در خود ذخیره می‌کند.
3)انتصاب
زمانی اتفاق می‌افتد که مقدار خاصی به متغیر اختصاص داده ‌شود.
"جاوا اسکریپت به حروف بزرگ و کوچک حساس است. برای مثال var با Var دو عبارت  متفاوت برای این زبان تلقی می‌شود."

تعریف متغیر ها:

var

var x; // Declaration and initialization
x = "Hello World"; // Assignment

// Or all in one
var y = "Hello World";

var یکی از معمول‌ترین اعلان‌هایی است که برای تعریف متغیرها در جاوا اسکریپت استفاده می‌شود. تا پیش از مطرح شدن ECMAScript 6  کلید واژه‌ی var تنها راه تعریف متغیرها در جاوا اسکریپت به حساب می‌امد.
در صورتیکه می‌خواهید یک متغیر به صورت محلی تعریف شود، از عبارت var  استفاده کنید.  در غیر اینصورت واژه‌ی مورد نظر به عنوان یک متغیر عمومی شناخته می‌شود.
مثال:
function sayHello(){
  var hello = "Hello World";
  return hello;
}
console.log(hello);

در قطعه کد بالا متغیر hello فقط برای sayHello تعریف شده است. اما در کدی که در ادامه آمده است، متغیر hello عمومی است.
 

var hello = "Hello World";
function sayHello(){
  return hello;
}
console.log(hello);

Let

let x; // Declaration and initialization
x = "Hello World"; // Assignment

// Or all in one
let y = "Hello World";

واژه‌ی Let  مدل جدیدی از var  است که در ES6  معرفی شد. با استفاده از این کلمه‌ی کلیدی متغیر به یک تابع محدود نشده  و می‌توانید ان را برای یک بلوک تعریف کنید. یک بلوک توسط {} معرفی می‌شود.

var name = "Peter";
if(name === "Peter"){
  let hello = "Hello Peter";
} else {
  let hello = "Hi";
}
console.log(hello);

در قطعه کد بالا  متغیر  hello  بیرون از بلوک if در دسترس نخواهد بود.  let درصد خطاهای برنامه‌تان را کمتر می‌کند.

var name = "Peter";
if(name === "Peter"){
  let hello = "Hello Peter";
  console.log(hello);
} else {
  let hello = "Hi";
  console.log(hello);
}

Const

const x = "Hello World";

در ES 6 کلمه‌ی جدید مطرح شد که به برنامه‌نویسان اجازه می‌داد متغیرهای خواندنی ایجاد کرده و به آن‌ها مقدار دهند. متغیرهای ثابت برای نگهداری مقادیری استفاده می‌شوند که غیر قابل تغییرند. این مقادیر یک بار تعریف شده و در جاهای مختلف برنامه استفاده می‌شوند.
پیش از ارائه‌ی ES6 تعریف مقادیر ثابت در جاوا اسکرپت امکان‌پذیر نبود. اما حالا از کلمه کلیدی const برای تعریف این مقادیر استفاده می‌شود. واژه‌ی const نیز مانند let دارای  محدوده‌ی بلوکی است. 
 

 متغیرهای عمومی

متغیرهایی که به صورت var،let  و const تعریف نشده‌اند، اصطلاحا متغیرهای عمومی تلقی می‌شوند. این متغیرها حتی اگر در داخل تابع  تعریف شده باشند،  در تمام بخش های کد قابل دسترسی‌ می‌شوند.

مثال:
function sayHello(){
  hello = "Hello World";
  return hello;
}
sayHello();
console.log(hello);

حوزه تعریف متغیر و Hoisting

var، let و const تفاوت دیگری هم دارند که به دلیل وجود مفهومی به نام hoisting  مطرح می‌شود. یکی دیگر از ویژگی‌هایی جاوا اسکریپت این است که می‌توانید متغیرها را قبل از تعریف شدن، استفاده کنید. به این مفهوم بالا بردن یا hoisting گفته می‌شود. به عبارت دیگر می‌توان متغیر را مورد استفاده قرار داده و بعدا آن را تعریف کنید.
برای متغیرهای var در صورتی که متغیر بعدا تعریف نشده باشد، مقدار undefined  برگردانده می‌شود در صورتیکه در متغیرهای let  و const برنامه خطا می‌دهد.
"جاوا اسکریپت مقداردهی‌های اولیه را hoist نمی‌کند."  
 

console.log(hello);
var hello;
hello = "I'm a variable";

var hello;
console.log(hello);
hello = "I'm a variable";

برای جلوگیری از بروز خطا در کدنویسی بهتر است متغیرهای خود را در ابتدای scope تعریف کنید.

منبع:
sitepoint
 


 

کارشناس فناوری اطلاعات، مدیر محتوا و وبلاگ نویس حوزه‌ی فناوری

نظرات و سوالات کاربران

ارسال پاسخ حمید
حمید
دوشنبه ۱۹ مهر ۱۳۹۵ ۰۲:۴۴
ممنون ، مفید بود