Sokan Academy

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

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

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

نام‌گذاری متغیرها

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

پس از آن، باید نام متغیر را مشخص کنیم. هر متغیر یک نام یکتا (Identifier) دارد که آن را از سایر متغیرها متمایز می‌کند. برای نام‌گذاری متغیرها می‌توانیم از حروف، اعداد، علامت آندرلاین (_) و علامت دلار ($) استفاده کنیم. نکته مهمی که باید به آن توجه کنید این است که نام متغیر نباید با عدد شروع شود. بهتر است نام متغیر همیشه با یک حرف آغاز شود.

همچنین توجه داشته باشید که جاوااسکریپت نسبت به کوچک و بزرگ بودن حروف حساس است
بنابراین، اگر متغیری با نام A  تعریف کنید، با متغیر a  کاملاً متفاوت است و جاوااسکریپت این دو را به‌عنوان دو متغیر مجزا در نظر می‌گیرد.

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

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

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

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

برای مثال:

sokanAcademy

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

استفاده نکردن از کلمات رزرو شده

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

تعریف و مقداردهی متغیرها

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

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

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

sekan = 1;

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

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

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

var sekan = 0;

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

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

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

var sokan,
academy;

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

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

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

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

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

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

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

x = 10;

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

تعریف غیرمستقیم متغیر و کار با مقدار متغیرها

همان‌طور که گفتیم، می‌توان بدون استفاده از کلیدواژه‌هایی مانند var، مستقیماً به یک متغیر مقدار نسبت داد: این کار نیز نوعی تعریف متغیر محسوب می‌شود، اما به هیچ عنوان روش پیشنهادی نیست و بهتر است همیشه متغیرها را به‌صورت استاندارد تعریف کنید. 

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

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

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

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

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

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

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

sekan = 4;
academy = sekan;
console.log(sekan);   // 4
console.log(academy); // 4

تمرین

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

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

جمع‌بندی

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

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

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

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

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

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