جاوا اسکریپت/متغیرها
در برنامه نویسی، یک متغیر یک ظرف یا نگهدارنده (محل ذخیره) برای نگهداری داده ها است. برای مثال یک متن را در متغیر پیام (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” را برمی گرداند. این به عنوان یک مشکل در جاوا اسکریپت شناخته می شود.