انواع داده در جاوا اسکریپت
خوش اومدین به یازدهمین جلسه از دوره آموزش رایگان جاوا اسکریپت. توی این بخش قراره که با مبحث بسیار مهم <انواع داده در جاوا اسکریپت> در خدمتتون باشم. ابتدا با مفهوم انواع داده در جاوا اسکریپت آشنا میشیم و در ادامه انواع مختلف اون رو میشناسیم. جاوا اسکریپت از انواع دادههای مختلفی مانند اعداد، رشتهها و اشیاء و…. پشتیبانی میکنه.
مفهوم انواع داده در جاوا اسکریپت
دادهها و مقادیری که عموما در داخل متغیرها ذخیره میشن، انواع مختلفی دارن. نوع داده از اهمیت زیادی برخورداره. هر نوعی امکانات و محدودیتهای خاص خودش رو داره. مثلا دادههای عددی این امکان رو دارن که از عملگرهای محاسباتی در موردشون استفاده کنیم ولی این امکان برای دادههای رشتهای وجود نداره.
پویا بودن انواع داده در جاوا اسکریپت
یکی از ویژگیهای بسیار خوب جاوا اسکریپت پویا بودن انواع داده هست. به این معنی که متغیر میتونه انواع مختلفی از داده رو توی خودش ذخیره کنه و این نوع به راحتی قابل تغییر هست. مثال زیر رو ببینید:
var x;
x = 5; // در اینجا متغیر یک عدد است
x = "John"; // در اینجا متغیر یک رشته است
در خط اول متغیر x رو تعریف کردیم. توی خط دوم متغیر ما مقداری از نوع عددی رو گرفته و در خط سوم مقداری رشتهای رو درون همون متغیر ذخیره کردیم. این ویژگی پویایی انواع داده در جاوا اسکریپت هست که به ما این امکان رو میده.
حالا که با این مفاهیم آشنا شدیم وقت اون رسیده که به سراغ انواع مختلف داده در جاوا اسکریپت بریم:
انواع داده در جاوا اسکریپت
نوع داده رشتهای در جاوا اسکریپت
رشتهها دنبالهای از کاراکترها هستن. رشتهها باید در داخل کوتیشن یا دابل کوتیشن قرار بگیرن.
var carName = "Volvo XC60";
var carName = 'Volvo XC60';
اگه قصد دارید از خود کاراکتر کوتیشن یا دابل کوتیشن استفاده کنید، باید توجه کنید که مطابق کوتیشنهای ابتدا و انتهای رشته نباشن:
var answer = "It's alright";
var answer = "He is called 'Johnny'";
var answer = 'He is called "Johnny"';
نوع داده اعداد در جاوا اسکریپت
تعریف اعداد توی جاوا اسکریپت خیلی راحت هست و فقط یک نوع عدد توی جاوا اسکریپت وجود داره. تمامی اعداد صحیح و اعشاری رو میتونید بصورت یکسان تعریف کنید:
var x1 = 34.00;
var x2 = 34;
اعداد خیلی کوچیک و خیلی بزرگ رو میتونیم با نماد علمی بنویسیم:
var y = 123e5; // 12300000
var z = 123e-5; // 0.00123
نوع داده Boolean در جاوا اسکریپت
این نوع داده فقط دو مقدار رو میتونه نگهداری بکنه: true و false (درست و نادرست)
از این نوع داده بیشتر اوقات توی جملات شرطی استفاده میشه
var x = 5;
var y = 5;
var z = 6;
(x == y) // Returns true
(x == z) // Returns false
نوع داده آرایه در جاوا اسکریپت
آرایهها نوعی خاصی از متغیرها هستن که میتونن بیشتر از یه مقدار رو توی خودشون ذخیره کنن. آیتم های آرایه رو با استفاده از کاما از همدیگه جدا میکنیم:
var cars = ["Saab", "Volvo", "BMW"];
در قطعه کد بالا من یک آرایه به نام cars تعریف کردم که ۳ مقدار داخل اون ذخیره شده. برای دسترسی به هر مقدار باید از اندیس اون به اضافه اسم آرایه استفاده کنیم. اندیس ها از صفر شروع میشه. یعنی اندیس اولین خانه برابر صفر هست، دومی یک و … بنابراین با استفاده از cars[0] به مقدار saab دسترسی پیدا میکنم.
در مورد آرایهها توی بخش مجزا بصورت مفصل صحبت میکنیم.
نوع داده اشیا در جاوا اسکریپت
اشیاء نوع خاصی از دادهها هستن که بین آکولاد تعریف میشن و بصورت name:value نوشته میشن. همینطور با استفاده از کاما از بخشهای دیگه جدا میشن. مثال زیر رو ببینید:
var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
در مورد اشیاء بصورت مفصل توی بخشهای دیگه صحبت میکنیم.
نوع داده undefined در جاوا اسکریپت
این نوع داده در حقیقت محتوای متغیر بدون مقدار هست. پس میتونیم بگیم توی جاوا اسکریپت متغیرهای بدون مقدار از نوع undefined هستن:
var car; // Value is undefined, type is undefined
همینطور اگه ما متغیری رو با مقدار undefined مقداردهی کنیم تبدیل به متغیری با نوع undefined میشه:
car = undefined; // Value is undefined, type is undefined
نوع داده null در جاوا اسکریپت
این نوع داده هم از لحاظ عملکرد بسیار شبیه به undefined هست. null یعنی هیچی و زمانی که این مقدار رو به یک شی یا آبجکت اختصاص بدیم نوع داده اون تبدیل به null میشه:
var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
person = null;
عملگر typeof در جاوا اسکریپت
عملگر typeof نوع داده رو برمیگردونه:
typeof "" // Returns "string"
typeof "John" // Returns "string"
typeof "John Doe" // Returns "string"
typeof 0 // Returns "number"
typeof 314 // Returns "number"
typeof 3.14 // Returns "number"
typeof (3) // Returns "number"
typeof (3 + 4) // Returns "number"
دادههای اولیه در جاوا اسکریپت
دادههای اولیه توی جاوا اسکریپت دادههایی هستن که هیچ متد و پروپرتی اضافهای ندارن.
دادههای اولیه عبارتند از:
- رشته
- اعداد
- boolean
- undefined
عملگر typeof نوع داده، دادههای اولیه رو به شکل زیر برمیگردونه:
typeof "John" // Returns "string"
typeof 3.14 // Returns "number"
typeof true // Returns "boolean"
typeof false // Returns "boolean"
typeof x // Returns "undefined" (if x has no value)
دادههای پیچیده در جاوا اسکریپت
در مقابل دادههای اولیه، دادههای پیچیده که شامل function و object وجود دارن. اشیا و آرایهها توابع و null جزء این دسته هستن.
عملگر typeof برای اشیا، آرایهها و null مقدار object رو برمیگردونه و برای توابع مقدار function رو برمیگردونه.
typeof {name:'John', age:34} // Returns "object"
typeof [1,2,3,4] // Returns "object" (not "array", see note below)
typeof null // Returns "object"
typeof function myFunc(){} // Returns "function"