درس 3 از 24

متغیر در JavaScript چیست؟ آموزش تعریف متغیر و قواعد نام‌گذاری در جاوااسکریپت

بخش: مقدمه جاوا اسکریپت

در جاوا اسکریپت، متغیرها مانند ظرف‌هایی برای ذخیره داده عمل می‌کنند که می‌توانید در سراسر برنامه به آن‌ها دسترسی داشته باشید و آن‌ها را تغییر دهید.

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

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

در اینجا نمونه‌ای از استفاده از let برای تعریف متغیری به نام age آمده است:

let age;

در حال حاضر، متغیر age هیچ مقداری به خود اختصاص نداده است. اگر سعی کنید از آن استفاده کنید، مقدار undefined برمی‌گرداند که یعنی هیچ مقداری ندارد.

در اینجا یک مثال آورده شده است.

نکته: console.log() تابعی است که اطلاعات را در console چاپ می‌کند؛ console بخشی از مرورگر وب شماست که برای اشکال‌زدایی کد استفاده می‌شود. در درس‌های آینده بیشتر درباره console.log() یاد خواهید گرفت. همچنین نمادهای // برای افزودن کامنت در کد استفاده می‌شوند. کامنت‌ها یادداشت‌هایی برای خودتان یا برنامه‌نویسان دیگر هستند که هنگام اجرای کد نادیده گرفته می‌شوند.

let age;
console.log(age); // undefined
undefined

برای اختصاص دادن یک مقدار به یک متغیر باید از عملگر انتساب (assignment operator) به این شکل استفاده کنید:

let age = 25;

حالا وقتی از متغیر age استفاده کنید، مقدار 25 را برمی‌گرداند.

let age = 25;
console.log(age); // 25
25

عملگر انتساب شبیه علامت مساوی (=) است، اما برابری را بررسی نمی‌کند. در درس‌های آینده با عملگرهای درست برای بررسی برابری آشنا خواهید شد.

عملگر انتساب برای اختصاص دادن یک مقدار به یک متغیر استفاده می‌شود. این فرایند اختصاص دادن مقدار به متغیر را مقداردهی اولیه (initialization) می‌نامند.

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

در اینجا یک مثال از تخصیص مجدد مقدار برای متغیر age آمده است:

let age = 25;
console.log(age); // 25

age = 30;
console.log(age); // 30
25
30

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

هنگام تخصیص مجدد، فقط کافی است نام متغیر را استفاده کنید. تخصیص مجدد مفید است چون به شما اجازه می‌دهد مقدار ذخیره‌شده در یک متغیر را هنگام اجرای برنامه به‌روزرسانی و تغییر دهید. یک مثال خوب برای این کار، به‌روزرسانی امتیازها در یک بازی است.

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

نام متغیرهای شما باید توصیف کند که داده چه چیزی را نشان می‌دهد. برای مثال، به جای استفاده از نامی مثل x، یک نام توصیفی‌تر مثل age یا points باعث می‌شود کد شما قابل‌فهم‌تر باشد.

// Bad variable names
let x = 10;
let y = "John";

// Good variable names
let age = 10;

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

// Valid variable names
let age;
let _score;
let $total;

// Invalid variable names
let 1stPlace; // starts with a number

نام متغیرها به حروف بزرگ و کوچک حساس هستند (case-sensitive). یعنی کلمه age با حروف کوچک و کلمه Age با حرف A بزرگ، دو متغیر متفاوت در نظر گرفته می‌شوند.

let age = 25;
let Age = 30;

console.log(age); // 25
console.log(Age); // 30
25
30

به همین دلیل مهم است از یک قرارداد نام‌گذاری ثابت مثل camelCase استفاده کنید. camelCase یعنی کلمه اول کاملاً با حروف کوچک نوشته می‌شود و هر کلمه بعدی با حرف بزرگ شروع می‌شود.

در اینجا نمونه‌هایی از استفاده از قرارداد نام‌گذاری camelCase برای متغیرها آمده است:

let thisIsCamelCase;
let anotherExampleVariable;
let freeCodeCampStudents;

برخی کلمات کلیدی در جاوا اسکریپت وجود دارند که نمی‌توانید از آن‌ها به عنوان نام متغیر استفاده کنید؛ مثل let، const، function یا return، چون این‌ها برای خود زبان رزرو شده‌اند.

همچنین باید از استفاده از کاراکترهای خاص مثل علامت تعجب (!) یا نماد @ در نام متغیرها خودداری کنید. بهتر است نام متغیرها را خوانا نگه دارید و از حروف، اعداد، آندرلاین‌ها یا علامت دلار استفاده کنید.

با رعایت این دستورالعمل‌ها، کد شما تمیزتر و در عین حال با پیچیده‌تر شدن برنامه، مدیریت آن راحت‌تر خواهد بود.


سوالات

کدام کلمه کلیدی را برای تعریف متغیر در جاوا اسکریپت استفاده می‌کنید وقتی قصد دارید بعداً مقدار آن را به‌روزرسانی کنید؟

  • set
  • let
  • declare
  • variable

کدام‌یک از موارد زیر یک نام متغیر معتبر در جاوا اسکریپت است؟

  • 1stPlace
  • total-score!
  • player1Score
  • const

چرا استفاده از نام‌های توصیفی برای متغیرها مهم است؟

  • این کار توسط جاوا اسکریپت اجباری است.
  • نام‌های توصیفی باعث می‌شوند کد شما راحت‌تر فهمیده شود و نگهداری آن آسان‌تر باشد.
  • نام‌های توصیفی باعث می‌شوند کد سریع‌تر اجرا شود.
  • نام‌های توصیفی باعث می‌شوند بتوانید از let استفاده نکنید.