انواع داده ها در جاوا اسکریپت
در این آموزش با انواع داده در جاوا اسکریپت (JavaScript) همراه با مثال های مختلف آشنا خواهید شد.
let x = 5;
let y = “Hello”;
در اینجا،
- ۵ یک داده عددی صحیح است.
- “Hello” یک داده رشته ای است.
انواع داده در جاوا اسکریپت
در جاوا اسکریپت، ۸ نوع داده اصلی وجود دارد.
مثال | توضیحات | نوع داده |
‘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 student = { }; |
نوع داده شی به صورت جفت های کلید-مقدار | Object |
در اینجا همه انواع داده به جز Object انواع داده اولیه هستند در حالی که Objectها غیر اولیه هستند.
نکته: نوع داده Object (نوع غیر اولیه) می تواند مجموعه ای از داده ها را ذخیره کند در حالی که نوع داده اولیه فقط می تواند یک داده تنها را ذخیره کند.
String
نوع داده String یا رشته ای برای ذخیره مقدار متنی استفاده می شود. در جاوا اسکریپت، متن ها یا همان رشته ها بین دو علامت نقل قول (کوتیشن) قرار می گیرند:
- نقل قول تکی یا سینگل کوتیشن: ‘Hello’
- نقل قول دوتایی یا دابل کوتیشن: “Hello”
- نقل قول وارونه: `Hello`
مثال:
// مقادیر رشته ای
let name = ‘ram’;
let name1 = “hari”;
let result = `The names are ${name} and ${name1}`;
سینگل کوتیشن ها و دابل کوتیشن ها مشابه هم هستند و می توانید هر کدام را به دلخواه استفاده کنید.
نقل قول های وارونه یا Backticks معمولاً زمانی استفاده می شوند که رشته شامل متغیر یا عبارت باشد. همانطور که در مثال بالا مشاهده می کنید، یک متغیر یا عبارت به صورت {متغیر یا عبارت}$ در داخل رشته نوشته شده است.
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);
خروجی
پایگاه داده SQL Server رو قورت بده! بدون کلاس، سرعت 2 برابر، ماندگاری 3 برابر، پولسازی بلافاصله ... دانلود:
۹۰۰۷۱۹۹۲۵۱۲۴۷۴۰۹۹۹
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 تعریف کرد. مثال،
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 است، با یکدیگر تفاوت دارند.
Object
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” را برمی گرداند. این به عنوان یک مشکل در جاوا اسکریپت شناخته می شود.