انواع داده ها

یک متغیر میتونه شامل هر داده ای باشه.

در یک لحظه میتونه string باشه و در لحظه دیگه عدد:

به زبان های برنامه نویسی که همچنین اجاره ای رو به میدن میگیم dynamically typed به این معنی که نوع داده ای دارند ولی متغیر ها به اونها وابسته نیستند.

در جاوا اسکریپت ۷ نوع داده اصلی داریم ، در اینجا اونا رو به صورت کلی پوشش میدیم و بعدا در فصل بعدی هر کدوم رو با جزئیات توضیح میدیم.

اعداد در جاوا اسکریپت:

نوع عدد هم میتونه integer و هم float توش قرار بگیره.

عملیات زیادی برای اعداد وجود دارد:

ضرب ، تقسیم ، جمع ، تفریق

علاوه بر اعداد منظم ، مقادیر ویژه بینهایت و منفی بینهایت و NaN  هم جز این نوع داده قرار میگیرند.

به عنوان مثال برای نمایش  Infinity (بینهایت) میتوان / عدد یک را بر ۰ گرفت :

یا مستقیم Infinity (بینهایت) را چاپ کنیم:

NaN نشان دهنده یک خطای محاسباتی است.

زمانی که غطای غیر صحیح یا تعریف نشده رخ بده نتیجه NaN خواهد بود:

هر عملیاتی با مقدار NaNهمان NaN خواهد بود.

بنابر این توی هرجای از عبارت ریاضی NaN قرار بگیره نتیجه NaN میشه.


عملیات ریاضی امن هستند.

انجام عملیات ریاضی در جاوا اسکریپت امن هست

ما میتونیم هر کاری رو انجام بدیم:

تقسیم بر صفر ، با string های غیر عددی به عنوان اعداد رفتار میکند ، و غیره.

این اسکریپت فا خطای وخیم(مرگ اسکریپت) متوقف نمیشه.

در بدترین حالت NaN رو دریافت میکنیم.


مقادیر عددی خاص اساسا به نوع number تعلق دارند. البته همه ما میدونیم که ساختار مشترکی ندارند.

برای مطالعه بیشتر در مورد اعداد در جاوا اسکریپت به این لینک برید.

 

رشته ها در جاوا اسکریپت

رشته ها اغلب در جاوا اسکریپت با quote ها مشخص شده اند.

در جاوا اسکریپت سه نوع quote داریم:

  1. Double quotes: "Hello".
  2. Single quotes: 'Hello'.
  3. Backticks: Hello.

Double quotes و Single quotes ساده هستند.

در جاوا اسکریپت هیچ تفاوتی بین این دو وجود ندارد.

Backticks توسعه داده شده quote ها هستند.

به ما این اجازه رو میده که متغیر ها و یا عبارات دیگه ای رو توی string ها با ${…} جاگذاری کنیم.

برای مثال:

هر چیزی را که در داخل ${…} بذاریم محاسبه میشه و درنتیجه بخشی از رشته می شود.

شما به مثال زیر نوجه کنید در quote های دیگر این قابلیت وجود ندارد.

ما رشته ها را به طور کامل در آموزش رشته ها پوشش می دهیم.

در جاوا اسکریپت نوع character وجود ندارد.

در بعضی از زبان ها نوع character برای یک کاراکتر وجود دارد.

به طور مثال در c ، جاوا و C# این امکان هست.

در جاوا اسکریپت شما میتونید برای همچنین استفاده های از string استفاده کنید و یک کاراکتر در آن قرار بدید.


boolean در چاوا اسکریپت(logical type)

boolean ها فقط مقادیر true و false رو میگیرند.

این متغیر ها عموما برای مقادیر yes یا no استفاده میشن.

yes به معنی درست و false به معنی غلط .

برای مثال:

همچنین نتایج مقایسه ها هم boolean هستند:

ما boolean ها را به صورت عمیق تر در بخش عملگر های منطقی پوشش دادیم.

 

نوع مقادیر null در جاوا اسکریپت

مقادیر null جز هیچکدام از نوع های که در بالا توضیح دادیم قرار نمیگیرند.

ساختار آن یک نوع مجزای هست که فقط شامل null است.

در جاوا اسکریپت null اشاره به یک object  غیر موجود یا یک اشاره گر null مانند بعضی از زبان ها نیست .

اینجا فقط مقدار خاصی هست که نشان دهنده هیچ چیز ، خالی ، مقدار تعریف نشده است.

در دستور زیر age بنا به هر دلیلی خالی یا مجهول هست:

 

نوع مقادیر undefined در جاوا اسکریپت

مقدار undefined نیز از انواع دیگر جداست.

مانند null نوع خاص خود را دارد.

undefined به این معنی هست که مقداری اختصاص داده نشده است.

اگر متغیر تعریف شده باشد و بهتش مقداری اختصاص داده نشده باشد مقدارش undefined هست.

از لحاظ فنی ما میتونیم undefined رو به هر متغیری اختصاص بدیم.

اما این کار اصلا توصیه نمیشه.

عموما برای مقادیر empty و unknown از مقدار null استفاده میکنیم و برای بررسی بررسی اینکه متغیر اختصاص دادهش شده یا نه از undefined استفاده میکنیم.

 

نوع Objects و Symbols در جاوا اسکریپت

نوع Objects خاص است.

همه نوع های دیگر به نام ابتدای زیرا مقادیرشان میتونه تنها یه چیز باشه .

در مقابل objects برای ذخیره مجموعه ای از داده ها با مدل های پیچیده تر استفاده میشوند.

بعد از یادگیری در مورد انواع پایه ای در Objects با آنها بیشتر کار میکنیم.

نوع symbol برای ایجاد شناسه های منحصر به فرد برای objects استفاده می شود. برای اینکه آموزش های ما کامل باشد باید در مورد symbol هم توضی بدیم اما بهتره که بعد از یادگیری objects ها به اون بپردازیم.

 

عملگر typeof در جاوا اسکریپت

عمل typeof  نوع argument را برمیگردونه.

وقتی که ما میخواهیم مقادیر انواع مختلفی به صورت متفاوت یا میخواهیم در لحظه اونو بررسی کنیم برای ما مفید هست.

به دو syntax میتونیم بنویسیمش :

  1. به عنوان عملگر:

typeof x

۲. به عنوان تابع:

typeof(x)

به عبارت دیگر ، با پرانتز یا بدون پرانتز کار میکند و نتیجه همان هست.

با فراخوانی typeof x یک string که حاوی نام نوع مقدار  هست را باز میگرداند.

توضیحات اضافی سه خط آخر که ممکنه نیاز داشته باشید:

  1. Math یک object ساخته شده هست که عملگر های ریاضی رو فراهم میکنه. برای یادگیری بیشتر به اعداد برید و توضیحات بیشتر رو بخونید.
  2. نتیجه typeof null یک object هست. این خطاست. یک خطای رسمی شناخته شده برای حفظ compatibility است.البته null یک object نیست . یک مقدار ویژه با نوع جداگانه خودشو داره. پس دوباره بگیم که این خطا در زبان جاوا اسکریپت هست.
  3. نتیجه typeof alert یک function هست . زیرا alert یک تابع هست. مطالعه functions در فصل بعدی جایی که میبینیم که هیچ نوع function ویژه ای در جاوا اسکریپت وجود ندارد. توابع به نوع object تعلق دارند. اما typeof رفتار متفاوتی دارد و function را برمیگرداند. این واقعا درست نیست اما در عمل بسیار راحت هست.

 

خلاصه

در جاوا اسکریپت ۷ نوع داده ای پایه وجود دارد:

  • number: برای هر نوع اعدادی اعم از integer و floating-point میشه استفاده کرد.
  • string : برای رشته ها. یک رشته ممکن هست یک یا چندین کاراکتر داشته باشد جداگانه نوعی برای کاراکتر ها وجود ندارد.
  • boolean : برای true/false
  • null : برا مقادیر ناشناخته – بک نوع مستقل که مقدار null دارد.
  • undefined : برای مقادیر اختصاص داده نشده – یک نوع مستقل فقط برای یک مقدار تعریف نشده هست.
  • object : برای داده هایی با ساختار پیچیده تر.
  • symbol : برای شناسه های منحصر به فرد.

 

ما با عملگر typeof میتونیم نوع مقدار ذخیره شده در یک متغیر رو ببینیم.

با دو syntax :

typeof x یاtypeof(x).

یک رشته با نام نوع رو برمیگردونه.

برای null رشته object رو برمیگردونه که این یکی از خطا های این زبان هست . در واقع null یک object نیست.

 

منبع : javascript.info

دیدگاهتان را بنویسید

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