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

Gnome-go-last.svg Gnome-go-first.svg

در برنامه نویسی، یک متغیر یک ظرف یا نگهدارنده (محل ذخیره) برای نگهداری داده ها است. برای مثال یک متن را در متغیر پیام (message) ذخیره می کنیم. مثال:

var message = Hello, World!;

تحلیل کد بالا: var یک واژه کلید، مخفف واژه انگلیسی “variable” است که برای ساخت متغیر بکار می رود. message نام متغیر ما است که می تواند هر چیزی باشد و امری دلبخواهی تلقی می شود. = یک عملگر انتساب، برای نسبت دادن مقدار است. Hello, World! متنی است که در متغیر ذخیره کرده ایم. نکته: جاوااسکریپت در تعریف متغیر، نیاز به مشخص کردن نوع آن ندارد. با مقداردهی به یک متغیر،به طور خودکار نوع داده آن نیز مشخص خواهد شد.

چاپ مقدار منتسب متغیرویرایش

var message = Hello, World!;
document.write(message);

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

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

  • نام متغیر تنها می تواند با یک حرف الفبای انگلیسی، آندرلاین _ و یا علامت دلار $ شروع شود.
  • جاوا اسکریپت به حروف کوچک و بزرگ حساس است. بنابراین متغیرهای y و Y، دو متغیر متفاوت به شمار می روند.
  • نام متغیر نمی تواند با عدد شروع شود.
  • نمی تواند شامل کاراکترهای ! @ # $ % ^ & * باشد.
  • از کلمات کلیدی نمی توان برای نامگذاری متغیرها استفاده کرد.

نکته: گرچه می توانید نام متغیرها را به دلخواه انتخاب کنید اما بهتر است از یک نام مرتبط استفاده کنید. نکته: در جاوا اسکریپت اگر نام متغیر بیشتر از یک واژه داشته باشد، به صورت نگارش شتری camelCase نوشته می شود. برای نوشتن ترکیبی از کلمات، هر کلمه به جز کلمه اول با حرف بزرگ شروع می‌شود و بقیه حروف آن با حروف کوچک نوشته می‌شود. به طور مثال: firstName

ثابت هاویرایش

کلمه کلیدی const نیز در نسخه ES6(ES2015) برای تعریف ثابت ها معرفی شد. ثابت ها نوعی متغیر هستند که مقدار آنها قابل تغییر نیست. مثال، const x = 5; پس از مقداردهی اولیه یک ثابت نمی توانیم مقدار آن را تغییر دهیم. x = 10; console.log(x) // خطا! مقدار ثابت را نمی توان تغییر داد نکته: حتما باید در زمان تعریف یک ثابت، مقدار آن را نیز تعیین کنید. مثال: const x; // خطا! ثابت مقداردهی نشده است x = 5; console.log(x)

عملگرهاویرایش

نوع دادهویرایش

در جاوا اسکریپت، ۹ نوع داده اصلی وجود دارد.

مثال توضیحات نوع داده
‘hello’, “hello world!” نوع داده رشته ای برای مقادیر متنی String
۳, ۳٫۲۳۴, ۳e-2 نوع داده عددی برای اعداد صحیح یا اعشاری Number
۹۰۰۷۱۹۹۲۵۱۲۴۷۴۰۹۹۹n, 1n نوع داده عددی برای اعداد صحیح با دقت دلخواه BigInt
true و false نوع داده بولین (یا منطقی) برای مقادیر دو حالته مثل درست یا غلط Boolean
let a; نوع داده برای متغیری که مقداردهی اولیه نشده undefined
let a = null; کلمه کلیدی برای مقدار نال یا تهی null
let value = Symbol(‘hello’); نوع داده برای نمونه های منحصر به فرد و تغییرناپذیر Symbol
let fruits = [“apple”, “banana”]; آرایه Array
let student = { }; نوع داده شی به صورت جفت های کلید-مقدار Object

در اینجا همه انواع داده به جز Object و Array انواع داده اولیه هستند در حالی که Object و Array ها غیر اولیه هستند. نکته: نوع داده Object و Array (انواع غیر اولیه) می تواند مجموعه ای از داده ها را ذخیره کند در حالی که نوع داده اولیه فقط می تواند یک داده تنها را ذخیره کند.

Stringویرایش

نوع داده String یا رشته ای برای ذخیره مقدار متنی استفاده می شود. در جاوا اسکریپت، متن ها یا همان رشته ها بین دو علامت نقل قول (کوتیشن) قرار می گیرند: • نقل قول تکی یا سینگل کوتیشن: ‘Hello’ • نقل قول دوتایی یا دابل کوتیشن: “Hello” • نقل قول وارونه: `Hello` مثال: // مقادیر رشته ای let name = ‘ram’; let name1 = “hari”; let result = `The names are ${name} and ${name1}`; سینگل کوتیشن ها و دابل کوتیشن ها مشابه هم هستند و می توانید هر کدام را به دلخواه استفاده کنید. نقل قول های وارونه یا Backticks معمولاً زمانی استفاده می شوند که رشته شامل متغیر یا عبارت باشد. همانطور که در مثال بالا مشاهده می کنید، یک متغیر یا عبارت به صورت {متغیر یا عبارت}$ در داخل رشته نوشته شده است.

Numberویرایش

Number نوع داده Number یا عددی برای اعداد صحیح و اعشاری (اعشار و نمایی) استفاده می شود. مثال، let number1 = 3; let number2 = 3.433; let number3 = 3e5; // 3 * 10^5 در جاوا اسکریپت یک نوع عددی می تواند مثبت بی نهایت (infinity)، منفی بی نهایت (infinity-) و یا NaN باشد (نه یک عدد). مثال، let number1 = 3/0; console.log(number1); // Infinity let number2 = -3/0; console.log(number2); // -Infinity // مقدار رشته ای را نمی توان بر مقدار عددی تقسیم کرد let number3 = “abc”/3; console.log(number3); // NaN

BigIntویرایش

نوع داده Number تنها می تواند اعداد بین (۱- ۲۵۳)- تا (۱- ۲۵۳) را نشان دهد. برای کار با اعداد بزرگتر یا کوچکتر می توانید از نوع داده BigInt استفاده کنید. نوع عدد BigInt با اضافه کردن حرف n به انتهای یک عدد صحیح ساخته می شود. به طور مثال، // BigInt let value = 900719925124740998n; // BitInt جمع دو مقدار با نوع let value1 = value + 1n; console.log(value1); // “900719925124740999n” value = 900719925124740998n; // را نمی توان با هم جمع کرد BitInt و numberخطا! دو نوع value1 = value + 1; console.log(value1); خروجی ۹۰۰۷۱۹۹۲۵۱۲۴۷۴۰۹۹۹ Uncaught TypeError: Cannot mix BigInt and other types خطا در خروجی بیان می کند که نوع داده BigInt را با نمی توان انواع دیگر داده ترکیب کرد. نکته: نوع داده BigInt در نسخه های جدیدتر JavaScript معرفی شده است و در بسیاری از مرورگرها از جمله Safari پشتیبانی نمی شود.

Booleanویرایش

این نوع داده یک نوع منطقی را نشان می دهد. نوع داده Boolean یا بولین یکی از دو مقدار true (درست) یا false (نادرست) را نشان می دهد. در واقع تنها دو مقدار می تواند بگیرد و بین این دو مقدار جابه جا می شود. مثال، let dataChecked = true; let valueCounted = false; undefined نوع داده undefined یا تعریف نشده، مقدار تخصیص داده نشده را نشان دهنده است. یعنی اگر متغیری تعریف شود اما مقداری در آن ذخیره نشود آنگاه مقدار آن متغیر undefined تعیین می شود. مثال، let name; console.log(name); // undefined همچنین می توان به طور مستقیم مقدار یک متغیر را undefined تعریف کرد. مثال، let name = undefined; console.log(name); // undefined نکته: مقداردهی مستقیم undefined توصیه نمی شود. معمولاً برای مقادیر “ناشناخته” یا “خالی” از کلمه کلیدی null استفاده می شود. null null در جاوا اسکریپت یک مقدار خاص است که مقدار خالی یا ناشناخته را نشان می دهد. مثال، let number = null; کد بالا نشان می دهد که متغیر number یک متغیر خالی است. نکته: null را نمیتوان به صورت NULL یا Null نوشت.

Symbolویرایش

این نوع داده در نسخه جدید جاوا اسکریپت (از ES2015) معرفی شده است. یک مقدار با نوع داده Symbol می تواند به یک نماد (symbol) اشاره می کند. Symbol یک نوع داده اولیه تغییرناپذیر و منحصر به فرد است. در واقع symbol یک نوع داده اولیه شبیه number، string و … هست ولی یک شناسه دارد. هر بار با نوشتن ()Symbol یک نماد جدید و منحصر به فرد ساخته می شود که تضمین می کند هیچ متغیر دیگری این شناسه را ندارد و با سایر نمادها متفاوت است. مثال: // ‘hello’دو نوع نماد متمایز با تعریف های مشابه let value1 = Symbol(‘hello’); let value2 = Symbol(‘hello’); گرچه مقدار هر دو متغیر value1 و value2 مثل هم به نظر می رسند و دارای مقدار ‘hello’ هستند اما چون نوع آنها از نوع Symbol است، با یکدیگر تفاوت دارند.

Arrayویرایش

Objectویرایش

یک نوع داده پیچیده است که امکان ذخیره سازی مجموعه ای از داده ها را فراهم می کند. مثال، let student = { firstName: ‘ram’, lastName: null, class: 10 }; // داده از نوع تعریف نشده است let data; // داده از نوع عددی است data = 5; // داده از نوع رشته ای است data = “JavaScript Programming”; typeof در جاوا اسکریپت برای تشخیص نوع داده متغیر می توانید از عملگر typeof استفاده کنید. مثال: let name = ‘ram’; typeof(name); // “string” let number = 4; typeof(number); // “number” let valueChecked = true; typeof(valueChecked); // “boolean” let a = null; typeof(a); // “object” دقت کنید که عملگر typeof برای مقدار null نوع داده “object” را برمی گرداند. این به عنوان یک مشکل در جاوا اسکریپت شناخته می شود.