Sokan Academy

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

متغیر چیست؟

متغیر در واقع شبیه یک ظرف برای نگهداری داده‌هاست. همان‌طور که در ریاضیات داشتیم، متغیر x برابر با ۲ و متغیر y  برابر با ۳ بود، و سپس متغیر دیگری به نام c داشتیم که حاصل جمع x و y بود. یا حتی ممکن بود یک ماتریس را در قالب یک متغیر ذخیره کنیم؛ در جاوا اسکریپت (JavaScript) و به طور کلی در برنامه‌نویسی نیز همین مفهوم وجود دارد. برای استفاده از هر متغیر، ابتدا باید آن را تعریف کنیم.

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

نام‌گذاری متغیرها در جاوااسکریپت

برای شروع وارد محیط Visual Studio Code می‌شویم و یک فایل با نام script.js ایجاد می‌کنیم. حال می‌خواهیم اولین متغیر خود را تعریف کنیم:

  1. برای تعریف متغیر در جاوا اسکریپت، از کلیدواژه‌ی var استفاده می‌کنیم. این کلیدواژه برای تعریف متغیر به کار می‌رود و با حروف کوچک نوشته می‌شود.
  2. پس از آن، باید نام متغیر را مشخص کنیم. هر متغیر یک نام یکتا (Identifier) دارد که آن را از سایر متغیرها متمایز می‌کند.
  3. برای نام‌گذاری متغیرها می‌توانیم از حروف، اعداد، علامت آندرلاین (_) و علامت دلار ($) استفاده کنیم.
  4. نکته مهمی که باید به آن توجه کنید این است که نام متغیر نباید با عدد شروع شود. بهتر است نام متغیر همیشه با یک حرف آغاز شود.
  5. همچنین توجه داشته باشید که جاوا اسکریپت نسبت به کوچک و بزرگ بودن حروف حساس است، بنابراین، اگر متغیری با نام A تعریف کنید، با متغیر a کاملاً متفاوت است و جاوا اسکریپت این دو را به‌عنوان دو متغیر مجزا در نظر می‌گیرد.
  6. پس از انتخاب نام (مثلاً متغیری با نام sokan)؛ بهتر است در پایان از علامت سمی‌کالن (;) استفاده کنید. اگرچه ننوشتن آن الزاماً خطا ایجاد نمی‌کند، اما استفاده از آن نشان می‌دهد که عبارت تمام شده و یک دستور جدید قرار است آغاز شود.
var sokan;

نام‌گذاری متغیرهای چند کلمه‌ای

گاهی اوقات ممکن است بخواهید نام متغیر از چند کلمه تشکیل شود؛ برای مثال متغیری با نام Sokan Academy. برای خوانایی بیشتر، روش‌هایی برای نام‌گذاری پیشنهاد می‌شود که یکی از بهترین آن‌ها روش camelCase است. در camelCase، نحوه نوشتن به این صورت است:

  • کلمه اول کاملاً با حروف کوچک نوشته می‌شود.
  • ابتدای کلمه‌های بعدی با حرف بزرگ شروع می‌شود و ادامه آن با حروف کوچک نوشته می‌شود.

برای مثال:

var sokanAcademy;

در اینجا کلمه‌ی sokan با حروف کوچک نوشته شده و کلمه‌ی Academy با حرف اول بزرگ شروع شده است.

استفاده نکردن از کلمات رزرو شده در نام‌گذاری متغیرها

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

var var; ❌
var Var; ✔

تعریف چند متغیر با یک کلیدواژه

نکته‌ای که باید به آن توجه کنید این است که می‌توانیم با استفاده از یک کلیدواژه‌ی var چند متغیر را هم‌زمان تعریف کنیم. برای مثال:

var sokan, academy, JavaScript;

در این حالت می‌توانید هرکدام از متغیرها را در همان لحظه مقداردهی کنید یا مقدار اولیه‌ای برایشان قرار ندهید.

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

گفتیم که متغیرها برای نگهداری مقادیر استفاده می‌شوند. در مثال قبلی، ما تنها یک متغیر را تعریف کردیم و هنوز هیچ مقداری به آن نسبت ندادیم؛ بنابراین مقدار این متغیر به‌صورت پیش‌فرض undefined در نظر گرفته می‌شود.
به عنوان مثال اگر متغیر sokan را که در بالا تعریف کردیم اما هنوز مقداردهی نشده است، در کنسول مرورگر لاگ کنیم ((sokan)console.log)، نتیجه زیر را مشاهده می‌کنیم:

نمایش undefined در لاگ کنسول برای متغیری در جاوااسکریپت که مقداردهی نشده است
این یعنی متغیری که لاگ شده هنوز هیچ مقداری دریافت نکرده و مقدار آن «تعریف‌نشده» است.

مقداردهی متغیر با استفاده از عملگر انتساب

برای مقداردهی به متغیرها از عملگرِ مساوی = (Assignment Operator) استفاده می‌کنیم. به‌عنوان مثال، پس از تعریف متغیر sokan می‌توانیم به آن مقدار بدهیم:

var sokan;

sokan = 1;

این دستور به این معناست که مقدار ۱ در متغیر sokan ذخیره شده است. اگر دوباره متغیر را در کنسول لاگ بگیریم، مقدار ۱ نمایش داده می‌شود:

خروجی مقداردهی به متغیر با استفاده از عملگرِ مساوی =

مقداردهی متغیر در هنگام تعریف (Initialization)

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

var sekan = 0;

در این حالت، متغیر هنگام تعریف مقدار ۰ را دریافت می‌کند. به این فرایند اصطلاحاً Initializtion مقداردهی اولیه گفته می‌شود. اگر این مقدار را در کنسول لاگ بگیریم، مقدار ۰ برای ما نمایش داده می‌شود.

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

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

تغییر مقدار و حتی نوع داده‌ی متغیر

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

var sokan = 0;
console.log(sokan);  // خروجی: 0
sokan = "salam";
console.log(sokan);  // خروجی: "salam"

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

نتیجه مقداردهی جدید به متغیری که قبلا به آن مقداردهی کرده بودیم

تعریف غیرمستقیم متغیر از طریق مقداردهی

در نهایت باید بدانید که حتی بدون اینکه متغیر را به‌صورت رسمی با var  تعریف کرده باشید، می‌توانید مستقیماً به آن مقدار بدهید:

x = 3;

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

از طرف دیگر باید بدانید که اگر یک متغیر را تعریف نکرده باشید و سعی کنید از آن استفاده یا مقدارش را لاگ کنید، جاوا اسکریپت به شما ReferenceError می‌دهد. برای مثال:

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

این خطا نشان می‌دهد که متغیر academy تعریف نشده است.

اگر متغیری تعریف نشده باشد و بخواهید از آن استفاده کنید، جاوا اسکریپت خطای ReferenceError می‌دهد

انتقال مقدار میان متغیرها

می‌توانید علاوه بر نسبت‌دادن مستقیم یک مقدار، مقدار یک متغیر دیگر را به متغیر خود اختصاص دهید. به‌عنوان مثال:

var sokan = 0, academy;
academy = sokan;
console.log(sokan, academy)

می‌توان، مقدار یک متغیر دیگر را به متغیر دیگری منتقل کرد
در اینجا مقدار موجود در sokan داخل متغیر academy قرار گرفته است. اگر مقدار sokan را تغییر دهید و دوباره مقداردهی انجام دهید، مقدار جدید منتقل خواهد شد: 

sokan = 4;
academy = sokan;
console.log(sokan);   // خروجی: 4
console.log(academy); // خروجی: 4

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

برای این جلسه، تمرین زیر را انجام دهید:

  • یک متغیر تعریف کنید با نام name1 که مقدار آن ۲ باشد.
  • یک متغیر دیگر به نام name2 تعریف کنید که مقدار آن ۳ باشد.
  • حاصل جمع این دو مقدار را داخل متغیری با نام sum ذخیره کنید.
  • در نهایت مقدار متغیر sum را در کنسول مرورگر لاگ بگیرید.

توقع داریم در لاگ کنسول، مقدار ۵ را به عنوان پاسخ ببینیم!

جمع‌بندی

متغیرها، تقریباً از اولین مفاهیمی هستند که شما باید در مسیر یادگیری برنامه‌نویسی با آن‌ها آشنا شوید. در این قسمت از آموزش جاوا اسکریپت، ضمن معرفی متغیر، چگونگی تعریف و مقداردهی آن در جاوا اسکریپت به شما آموزش داده شد و نکات مهم آن بررسی شد.

به طور کلی برای تعریف متغیر در جاوا اسکریپت، ۴ راهکار وجود دارد: 

  1. استفاده از کلیدواژه var
  2. استفاده از کلیدواژه let
  3. استفاده از کلیدواژه const
  4. تعریف متغیر بدون هیچ کلیدواژه‌ای

در این قسمت، موارد 1 و 4 ارائه شده و توضیح موارد دیگر به قسمت‌های دیگری از آموزش موکول شده است؛ چراکه توضیح آن‌ها مستلزم توضیح مقدماتی دیگر است.

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

ES6آموزش جاوااسکریپتvariablejsjavascriptجاوا اسکریپتمتغیر

sokan-academy-footer-logo
کلیه حقوق مادی و معنوی این وب‌سایت متعلق به سکان آکادمی می باشد.