نوع داده در جاوااسکریپت
در جاوااسکریپت هم مشابه با سایر زبان های برنامه نویسی هر مقداری به یک نوع داده (یا Data Type) منتسب میشود. به طور خلاصه جاوااسکریپت دارای 8 نوع داده زیر میباشد:
- Number (عدد): اعداد صحیح (نه خیلی بزرگ) و اعداد اعشاری.
- BigInt: اعداد صحیح بزرگ.
- String (رشته): متن.
- Boolean (بولی): دو مقدار true و false. معمولا برای تستهای شرطی به کار میروند.
- Symbol: نوع دادهای برای ایجاد مشخصههای منحصربفرد.
- Undefined (تعریف نشده): نوع داده متغیری که مقداری ندارد.
- Null: نبود مقدار به صورت عمدی.
- Object (آبجکت): آبجکت ها در جاوااسکریپت به صورت جفتهای کلید/مقدار مشخص میشوند.
نوع دادههای فوق به جز Object، انواع داده اولیه (Primitive data types) یا اصلی جاوااسکریپت را تشکیل میدهند. با انواع داده های JavaScript در قسمتهای آتی به شکل مجزا آشنا میشوید.
پویایی نوع داده در جاوااسکریپت
پویایی (یا داینامیک بودن) نوع داده یکی از ویژگیهای زبان جاوااسکریپت محسوب میشود. به این معنا که در جاوااسکریپت، متغیرها مستقیما به یک نوع داده مشخص منسوب نمیشوند بلکه یک متغیر میتواند در هر زمانی دادهای با نوع متفاوت را در خود نگهداری کند.
بیشتر بخوانید: متغیر در جاوااسکریپت – let و var
به عنوان نمونه، در مثال زیر متغیر x هنگام تعریف با یک رشته مقداردهی اولیه میشود و دارای نوع داده String میباشد. اما در خط دوم مقدار آن به یک عدد (نوع Number) تغییر میکند؛ بدون آنکه پیام خطایی نمایش داده شود.
let x = "abc";
x = 12;
تغییر نوع ضمنی در JavaScript
هنگامی که در جاوااسکریپت، عملی روی مقادیری با نوع دادههای ناهمخوان انجام میشود به شکل ضمنی تغییر نوع مناسبی انجام میشود.
به عنوان مثال هنگامی که عمل + روی یک رشته و یک عدد انجام میشود، عدد به صورت ضمنی تبدیل به رشته میشود و عمل الحاق روی دو رشته حاصل انجام میشود. به عنوان نمونه، هنگام الحاق رشته “Hello” و عدد 12 (به صورت زیر)، ابتدا عدد 12 به رشته “12” تبدیل میشود و نتیجه الحاق برابر خواهد بود با “Hello12”.
let x = "Hello" + 12;
بیشتر بخوانید: عملگرهای رشته در جاوااسکریپت
نکته: فراموش نکنید تغییر نوع ضمنی میتواند باعث بروز نتایجی شود که انتظارش را نداشتیم.