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

نوشته‌شده در در دوره مقدماتی جاوا اسکریپت
Loading Likes...

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

متغیر: یه فضا برای ذخیره موقت اطلاعات که برای دسترسی همیشه دارای نام هستند.

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

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

در سال ۲۰۱۸ ما سه کلمه کلیدی برای تعریف متغیرها در جاوا اسکریپت داریم:

  • var – روش قدیمی برای تعریف متغیرها. یک متغیر تعریف میکنه.
  • const – اضافه شده در استاندارد ES6 (ECMAScript 2015). همونطور که از اسمش معلومه یه ثابت رو محدوده بلاک تعریف میکنه پس بعد از تعریف مقدار متغییر رو نمیشه تغییر داد.
  • let – اضافه شده در استاندارد ES6 (ECMAScript 2015). متغیر رو در محدوده بلاک تعریف میکنه و بیرون از اون محدوده دیگه متغیر قابل دسترس نیست.

خوب چند تا مثال:

تعریف متغیر با const

  <script>

    const WEBSITE_ADDR = 'www.irDevs.com';

    // let change it
    //WEBSITE_ADDR = 'www.irdevelopers.com'; // TypeError: invalid assignment to const `WEBSITE_ADDR'

    if (WEBSITE_ADDR === 'www.irDevs.com') {
      const WEBSITE_ADDR = 'new address';
      console.log(WEBSITE_ADDR); // prints 'new address'
    }

    console.log(WEBSITE_ADDR); // prints 'www.irDevs.com'
    
  </script>

میبینید که تو لاین اول یک ثابت تعریف کردیم و در لاین بعد سعی کردیم مقدار جدیدی بهش بدیم که اینکار ممکن نیست. اما چون const بلاک محور یا Block-scope هست ما اینجا میتونیم تو بلاک if مقدارش رو تغییر بدیم و فقط در محدوده همین بلاک قابل درسترس هست.

تعریف متغیر با let

let دقیقا مثل const بلاک محور هست اما مقدارش برخلاف const قابل تغییر هست. در حقیقت نکته مهم اینجا Block-scope بودن let هست و اومد تا از عیب های var کم کنه شایدم جایگزین var بشه . یه مثال در مورد var و let بیینید:

استفاده از var تو حلقه for:

for (var i = 0; i < 10; i  ) {
  // ...
}

alert(i); // 10, "i" is visible after loop, it's a global variable

چون var بلاک محور نیست حتی بعد(بیرون) از حلقه هم متغیر i  قابل دسترس هست.

متغیرهای تعریف نشده همگی بصورت پیشفرض متغیر سراسری (Global) هستن.

استفاده از let تو حلقه for:

<script>
for (let i = 0; i < 10; i  ) {
  // ...
}

alert(i); // undefined, "i" is NOT visible after loop, it's a local variable
</script>

تو این مثال i در بیرون ازبلاک if تعریف نشده است.

چند مثال دیگه از تعریف متغیرها:

میتونید چندین متغیر رو در یک لاین به این شکل تعریف کنید (مقدار بهشون بدید یا ندید):

var user = 'John', age = 25, message = 'Hello', car;

و یا متغیر رو تعریف کنید و بعد مقدار بدید:

var carName;
carName = 'McLaren';

و مقدارش رو عوض کنید:

let message;

message = 'Hello!';

message = 'World!'; // value changed

alert(message); // World!

 

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

قطعا ما نیاز داریم تا برای متغیرها یه اسم بذاریم تا بتونیم بعدا ازش استفاده کنیم قوانین نامگذاری متغیر این ها هستن:

  • نام متغیر میتونه حاوی حروف، اعداد و علائم _ و $ باشه
  • نام متغیر نباید با عدد شروع بشه
  • نام متغیر نمیتونه یک کلمه کلیدی یا نام رزرو شده باشه

کلمات رزرو در ES5 اینا هستن:

break, do, instanceof, typeof, case, else, new, var, catch, finally, return, void, continue, for, switch, while, debugger, function, this, with, default, if, throw, delete, in, try

مثال نام های صحیح برای متغیر:

let iranIslamicRepublic;
var _iran;
var %u0627%u06CC%u0631%u0627%u0646;
let $ = 'jQuery';
var _;

مثال نام های ناصحیح برای متغیر:

var 1_iran;     // SyntaxError: identifier starts immediately after numeric literal
var % = '2';    // SyntaxError: missing variable name
let var;        // SyntaxError: unexpected token: keyword 'var
var for;        // SyntaxError: missing variable name

متغیرها در جاوا اسکریپت به حروف کوچیک و بزرگ حساس هستند یعنی دو متغیر irdevs و irDevs با هم تفاوت دارند.

 

قرارداد های نام گذاری متغیر و بهترین روش ها

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

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

 



سوالی دارید؟

بدون گرفتن نتیجه اینجا رو ترک نکنید! هر سوالی دارید میتونید در عرض ۱۵ ثانیه ثبت نام و خیلی زود جواب بگیرید.

پاسخی بگذارید

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

÷ 4 = 1