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

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

چند نمونه:

۱. فروشگاه آنلاین -اطلاعات ممکن است شامل کالاهای فروخته شده و سبد خرید باشد.

۲. برنامه چت – اطلاعات ممکن هست شامل کاربران پیام ها و خیلی چیزایه دیگه ای باشه.

 

متغیر ها برای ذخیره این اطلاعات استفاده شدند.

یک متغیر

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

برای ایجاد یک متغیر در جاوا اسکریپت از کلید واژه let استفاده میکنیم.

دستور زیر یک متغیر با نام message  ایجاد میکند.

حالا میتونیم با استفاده از عملگر انتصاب = برخی از داده ها رو توی متغیری که تعریف کردیم قرار بدیم.

string در حافظه محلی مرتبط با متغیر ذخیره شده است.

ما میتونیم به وسیله نام متغیر به اون دسترسی داشته باشیم.

به طور مختصر ما میتونیم تعریف متغیر و انتصاب مقدار رو توی یک خط بنویسیم:

همچنین میتونیم چند متغیر رو در یک خط تعریف کنیم:

این ممکن هست کوتاهتر باشد اما ما این روش رو توصیه نمیکنیم .

به منظور خوانایی بهتر لطفا هر خط رو برای یک متغیر استفاده کنید.

چند خطی از نوع طولانی اما خوانایی راحتری داره :

بعضی افراد متغیر ها رو چند خطی به سبک زیر تعریف میکنند:

یا حتی کاما ، رو اول خط میذارند:

از لحاظ فنی همه اینها همون کار رو انجام میدن . همچنین معیار انتخاب سلیقه شخصی و زیبا شناسی هست.


var به جایlet

در اسکریپت های قدیمی شما ممکن هست پیدا کنید کلمه کلیدی var به جایlet:

کلمه کلیدی var تقریبا همون let هست.

همچنین یک متغیر را تعریف میکند اما روش مدارس قدیمی کمی متفاوت است.

تفاوت ریز و ظریفی بین let و var وجود دارد . اما هنوز معیاری برای ما وجود ندارد.

در بخش قدیمی var با جزئیات اونو پوشش میدیم.


قیاس واقعی

ما میتونیم مفهوم متغیر رو اگه شما اونو به عنوان یه جعبه که ری اون یک برچسپ منحصر به فردد داره برای اطلاعات تصور کنید را متوجه بشیم.

برای مثال متغیر message میتونه تصور شده در یک جعبه که برچسپ message با مقدار “Hello!” داخلش هست.

هر مقداری رو توی جعبه میتونیم قرار بدیم.

همچنین هر وقتی که بخواهیم میتونیم تغییرش بدیم.

وقتی که مقدار تغییر ویکنه داده قدیمی داخل متغیر حذف میشه.

همچنین ما میتونیم دو تا متغیر رو تعریف کنیم و داده رو از توی یکی به یکی دیگر کپی کنیم.


زبان های کاربردی

جالب اس بدونید که زبان های برنامه نویسی کاربردی مانند scala یا erlang که تغییر  مقادیر متغیر ها رو ممنوع میکند وجود دارند.

در چنین زبانی های یک مقدار در یک جعبه ذخیره شده ای برای همیشه وحود دارد.

اگر شما نیاز دارید به ذخیره هر چیز دیگه ای تو این زبان مجبوریم که جعبه جدیدی ایجاد کنیم.

نمیتونیم از یک جعبه قدیمی دوباره استفاده کنیم(منظور از جعبه variable هست).

اگر چه ممک هست در نگاه اول کمی عجیب و غریب به نظر برسد.

این زبان ها کاملا قادر به توسعه جدی هستند.

جدایی از این ، محیط هایی مانند مجاسبات موازی وجود دارد که این محدودیت مزایای خاصی را به وجود می آورند.

مطالعه چنین زبانی برای گسترش ذهن(ذهنیت) توصیه میشود.


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

برای نامگذاری متغیر در جاوا اسکریپت دو محدودیت وجود دارد :

  1. متغیر ها باید شامل حروف و اعداد و نماد $ و _ باشند.
  2. برای کاراکتر اول نباید از اعداد استفاده شود.

دو نمونه نام معتبر:

هنگامی که نام شامل چند کلمه هست عموما به صورت camelCase استفاده میشود.

یعنی اینکه : کلمات یکی پس از دیگری هرکدام با شروع کاراکتر بزرگ از همدیگه جدا میشن:myVeryLongName

جالبه که $ و _ در نام متغیر میتونیم استفاده کنید نمادهای منظم(regular) درست مثل حروف بدون هیچ معنای خاصی هستند.

این نام ها معتبر هستند:

نمونه ای از چند نام متغیر غلط:


اهمیت Case

متغیر apple و Apple دو متغیر متفاوت هستند.


 


اجازه دارید که حروف غیر لاتین استفاده کنید اما توصیه نمیشه

این توی هز زبانی امکانش هست شامل خط سریلیک یا حتی هیروگلیفس استفاده کرد:

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

حتی اگر شما یک اسکریپت کوچیک می نویسید ممکن است زمان طولانی از اون استفاده بشه . افراد دیگر از هر جای دیگه ممکن هست نیاز داشته باشند که اونو بخونن.


 


نام های رزرو شده

یک لیست از کلمات رزرو شده وجود دارد که نمیتونیم از اونها به عنوان نام متغیر ها استفاده کنید چون که توسط زبان مورد استفاده استفاده شده است.
برای مثال : letclassreturn, وfunction رزرو شده اند.

کد زیر خطای syntax به ما میده :


 


انتصاب بدون use strict

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

این هنوز هم بدون use strict کار میکنه :

یه چیزی بدی که هست اینکه که توی strict mode خطا میده:


مقادیر ثابت

برای تعریف یک مقدار ثابت از const به جای let  استفاده میشود.

دیگر این متغیر ها رو نمیشه تغیر داد.

وقتی که بخواهید اونو تغیر بدید خطای رخ میده:

وقتی که برنامه نویس مطمئن هست که یک متغیر رو هیچوقت تغیر نمیکنه میتونه اونو با const تعریف کنه و این ضمانت میکنه و برای هر کسی این واقعیت آشکار هست.

 

مقادیر ثابت Uppercase

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

به عنوان مثال : برای رنگ های اصلی استفاده شده در وب میخواهیم چند متغیر تعریف کنیم.

این چنین ثابت های با استفاده از حروف بزرگ و ـ نامگذاری شده اند.

مزایا:

COLOR_ORANGE بسیار آسان تر از آن است که “#FF7F00” را به یاد داشته باشیم.

تایپ COLOR_ORANGE از “#FF7F00” ساده تر است.

وقتی شما کد رو میخونید COLOR_ORANGE معنی دار تر از #FF7F00 هست.

چه وقتی ما باید از حروف بزگ استفاده کنیم و چه وقتی باید از حالت معمولی استفاده کنیم ؟ بیایید اینو روشن کنیم.

یک ثابت به این معنی هست که مقدار متغیر هرگز تغیر نمیکند. اما مقادیر ثابتی هستن قبل از اجرا(مانند مقدار هگزادسیمال برای رنگ قرمز)  شناخته شده اند و  مقادیر ثابتی هستن که در زمان اجرا محاسبه میشوند در طول اجرا اما بعد از انتصاب دیگه تغیر نمیکنند:

برای مثال :

مقدار pageLoadTime قبل از بارگذاری صفحه شناخته نشده است، بنابراین به طور معمولی نامگذاری شده است. اما هنوز یک ثابت است زیرا پس از انتصاب تغییر نمی کند.

به عبارتی دیگر مقادیر ثابتی که به صورت هارد کدی  هستن با حروف بزرگ نامگذاری میشوند.

 

همه چیز نامگذاری صحیح

یک نام متغیر باید معنی تمیز و واضح داشته باشد تا اطلاعاتی را که ذخیره می کند  رو توصیف کند.

نامگذاری متغیر یکی از مهمترین و پیچیده ترین مهارت های برنامه نویسی است.

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

هنگامی که ما بعد از انجام کاری به کد های قبل رجوع کنیم درصورتی که خوب برچسب گذاری شده باشد پیدا کردن کد ها اسانتر میشه برامون.

لطفا زماننتون رو برای فکر کردن در مورد نام درست برای مغیر ها صرف کنید. زیرا انجام این کار باعث موفقیت شما خواهد شد.
جند تا قوانین خوب که ارزش خوندن دارن:
از نامهای قابل فهم مانند “userName” یا “shoppingCart” استفاده کنید.

حد ال امکان از مختصر سازی بپرهیزید.مگر اینکه واقعا میدونید دارید چیکار میکنید.

نام ها حد اکثر توصیف و مختصر باشند.  مثالی از نامهای بد data , value .این دو نام اطلاعات زیادی را در مورد عملکرد آنها به ما ارائه نمی‌دهند.
قبول کردن مقررات تیم و در ذهت خودتون. اگر بازدید کننده یک سایت user  نامیده میشه پس شما باید متغیر مرتبط currentUser یا newUser  به جای currentVisitor یاnewManInTown.

استفاده مجدد یا ایجاد یک متغیر ؟

به عنوان آخرین نکته. وجود دارند برنامه نویسان تنبلی که به جای تعریف متغیر جدید میخواهند از اونهای که وجود دارند دوباره استفاده کنند.
قبلا گفتیم که متغیر ها مانند جعبه های هستند حالا داخل اونو بدون اینکه برچسپ ها رو تغیر بدیم پر میکنیم.
الان چه چیزی در داخل جعبه هست ؟ چه کسی میدونه ؟ باید داخلش رو نگاه کنیم که ببینیم چی توشه.
چنین برنامه نویسایی در هنگام تعریف وقشون رو نگه صرف نمیکنن اما در زمان debugging زمان بیشتری رو هدر میدیم.
نتیجه میگیریم که تعریف یک متغیر جدید برخلاف تصور بهتر است از استفاده مجدد متغیر های موجود.
minifiers و مرورگر ها کد رو به اندازه کافی بهینه میکنند پس نیاز نیس که مسائل performance  را ایجاد کنید.
با متغیر های مختلف برای مقادری مختلف شما حتی به موتور بهینه سازی کدتون هم کمک میکنید.

خلاصه

ما میتونیم متغیر ها رو برای ذخیره داده ها با استفاده از کلید واژه های  var , let و const تعریف کنیم.
  • let – یک تعریف متغیر جدید هست که برای استفاده در Chrome (V8) باید strict mode فعال باشد.
  • var – قبلا از این متغیر استفاده میشد تقریبا دیگه استفاده ای نمیشه اما تفاوت هایی ظریفی که با let داره رو توضیح میدیم.
  • const – شبیه به let هست اما قابل تغییر نیست.
منبع : javascript.info

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *