داده ها در JavaScript

انواع داده ها در JavaScript یا به عبارتی data type ها ( دیتا تایپ یا نوع داده ) یک مشخصه ی اصلی برای همه ی زبان های برنامه نویسی است. زبان جاوا اسکریپت نیز همانند سایر زبان های برنامه نویسی از انواع داده های عددی (Number) ، رشته ای (String) ، مقادیر صحیح یا غلط (Boolean) ، تهی (null) یا تعریف نشده (undefined) آرایه ها (Array) و شئ (object) پشتیبانی می نماید. داده ها در جاوا اسکریپت دارای خواص بسیار مهمی از جمله ذخیره ی متغیرها ، تعیین نوع متغیرها و انجام انواع عملیات بر روی متغیرها هستند.

تعیین نوع داده در JavaScript

همان طور که در جلسه گذشته در مورد متغیرهای جاوا اسکریپت صحبت شد، متغیرها در JavaScript نگهدارنده ی یک سری اطلاعات هستند. این اطلاعات همان داده های جاوا اسکریپت می باشند که در طول اجرای برنامه ممکن است بارها بارها مقدار یا حتی نوع داده ای آن ها تغییر بکند. داده ها در JavaScript ، دیتا تایپ های مختلفی را می پذیرند. تشخیص هر نوع از این داده ها برای برنامه نویس کمی دشوار به نظر می رسد. از این رو جاوا اسکریپت تشخیص نوع داده ی متغیر را بر عهده ی خود نهاده است و در حین اجرای برنامه نوع داده ای متغیرهای جاوا اسکریپت را شناسایی می کند. از این رو برنامه نویس برای تعریف متغیرها فقط کافیست از عبارت var استفاده نماید. var پذیرنده ی انواع داده های مختلف جاوا اسکریپت می باشد.
البته باید توجه داشته باشید که به طور مثال عملیاتی که برای اعداد قابل تعریف هستند با عملیاتی که بر روی رشته ها انجام می پذیرند کاملا متفاوت هستند. بنابراین برای پیشگیری از این نوع خطاها و محاسبات باید با این datatype های جاوا اسکریپت آشنا شوید.
تابع Typeof

این تابع در جاوا اسکریپت ، یک متغیر یا یک مقدار را گرفته و نوع آن را باز می گرداند.
typeof "John" // Returns string typeof 3.14 // Returns number typeof false // Returns boolean typeof [1‎،‎2‎،‎3‎،‎4] // Returns object‎ typeof {name:'John'‎،‎ age:34} // Returns object
1
2
3
4
5
typeof "John" // Returns string
typeof 3.14 // Returns number
typeof false // Returns boolean
typeof [1‎،‎2‎،‎3‎،‎4] // Returns object‎
typeof {name:'John'‎،‎ age:34} // Returns object



انواع داده ها در JavaScript

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

این نوع داده در جاوا اسکریپت برای نمایش اعداد از نوع صحیح و اعشاری به کار می رود. در جاوا اسکریپت تفاوتی میان اعداد از نوع int و float وجود ندارد و همه ی آن ها از نوع 64 بیتی می باشند. همچنین برای نمایش اعداد بسیار کوچک یا بسیار بزرگ، می توان از نماد علمی آن ها استفاده کرد.
var x1 = 34.00; var x2 = 34; var y = 123e5; // 12300000‎ var z = 123e-5; // 0.00123‎
1
2
3
4
var x1 = 34.00;
var x2 = 34;
var y = 123e5; // 12300000‎
var z = 123e-5; // 0.00123‎



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

نوع داده رشته ای در جاوا اسکریپت برای تعریف کراکترها و رشته ها به کار می رود. این رشته ها از کنار هم قرار گرفتن چندین کراکتر به وجود می آیند که بین حروف ‘ و ” قرار می گیرند. عموما از نماد ‘ برای کراکترها و از نماد ” برای رشته ها استفاده می گردد.
var carName = "Volvo XC60"; // Using double quotes var carName = 'Volvo XC60'; // Using single quotes‎
1
2
var carName = "Volvo XC60"; // Using double quotes
var carName = 'Volvo XC60'; // Using single quotes‎


ترکیبی از علامت های ” و ‘ را می توان در یک رشته بکار برد. البته به شرطی که تداخل بین انتهای رشته ها به وجود نیاید. مثال:
var answer="He is called 'Johnny'"; var answer='He is called "Johnny"';
1
2
var answer="He is called 'Johnny'";
var answer='He is called "Johnny"';


در صورت استفاده از نماد ” در یک عبارت رشته ای که ما بین ” قرار گرفته است می توانید از کراکتر \ قبل از ” بهره ببرید. یعنی به صورت زیر
var answer = "He is called"Johnny"; alert(answer);
1
2
var answer = "He is called"Johnny";
alert(answer);


نوع داده ای بولین Boolean در جاوا اسکریپت

نوع داده بولین برای نمایش مقادیر true و false استفاده می شود. این نوع داده در جاوا اسکریپت معمولا در آزمودن و عبارات شرطی کاربرد دارد.
var x=true; var y=false;
1
2
var x=true;
var y=false;


در صورت لزوم جاوا اسکریپت می تواند عبارات بولی 0 و 1 را به false و true تبدیل کند.
نوع داده تعریف نشده undefined در جاوا اسکریپت

Undefined به معنای تعریف نشده است. نوع داده ی Undefined هنگامی به کار می رود که داده ی مورد نظر بعد از اعلان مقدار دهی اولیه نشده باشد.
var person;
1
var person;


نکته: نوع داده ی Undefined با نوع داده ای که اصلا اعلان نشده است (بدون var) متفاوت می باشد.

نوع داده empty valuesدر جاوا اسکریپت

این نوع داده در جاوا اسکریپت با داده ی تعریف نشده Undefined تفاوت دارد. در داده های empty value مقدار و نوع متغیرها تعریف شده هستند.
var person = “”;
1
var person = “”;



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

Null به معنای تهی و خالی می باشد. با تخصیص نوع داده null به شئ ، مقدار شئ خالی می شود.
var person = null; // Value is null
1
var person = null; // Value is null


در واقع null به شئ ای اشاره می کند که وجود ندارد. از این رو جاوا اسکریپت نوع داده ی (typeof) null را شئ به حساب می آورد.
نکته: نوع داده ی Undefined یکی از مشتقات Null است. اما همان طور که دیدید هر کدام کاربردهای ویژه ی خود را دارند.
به تکه کد زیر توجه فرمایید:
null === undefined // false null == undefined // true
1
2
null === undefined // false
null == undefined // true



نوع داده آرایه Array در جاوا اسکریپت

این نوع داده در جاوا اسکریپت درون کروشه [] قرار می گیرد و عناصر آرایه با علامت کاما , از هم جدا می شوند. آرایه ها در جاوا اسکریپت به سه روش تعریف می شوند:
روش 1 :
var cars = new Array(); cars[0] = "Saab"; cars[1] = "Volvo"; cars[2] = "BMW";
1
2
3
4
var cars = new Array();
cars[0] = "Saab";
cars[1] = "Volvo";
cars[2] = "BMW";


روش 2 :
var cars = new Array("Saab"," Volvo"," BMW");
1
var cars = new Array("Saab"," Volvo"," BMW");


روش 3 :
var cars = ["Saab","Volvo","BMW"];
1
var cars = ["Saab","Volvo","BMW"];


نوع داده شئ object در جاوا اسکریپت

اشیاء در جاوا اسکریپت یک سری اطلاعات در مورد متغیر می دهند. اشیاء درون آکولاد {} قرار می گیرند و خصوصیات آن به صورت زیر مقدار دهی می شود:
var person={firstname:"John", lastname:"Doe", id:5566};
1
var person={firstname:"John", lastname:"Doe", id:5566};


شئ یک نوع کامل از آرایه می باشد که به هر خانه ی آن یک نام اختصاص داده است. بنابراین آرایه ها نوعی شئ محسوب می شوند. بناربراین هر خانه ی آن به صورت زیر نمایش داده می شود:
Person[“firstname”] = “John”;
1
Person[“firstname”] = “John”;


یا:
Person.firstname = “John”;
1
Person.firstname = “John”;


توجه: آرایه ها و اشیاء در جاوا اسکریپت مباحث بسیار مهمی هستند که در درس مربوط به خود در مورد آن ها بیشتر صحبت می نماییم.
اعلان نوع متغیر توسط new

به صورت کلی همه ی متغیرها در جاوا اسکریپت یک نوع شئ محسوب می شوند. برای اعلان هر نوعی از این متغیرها می توانیم از عبارت new استفاده نماییم.
var book = new String; var x= new Number; var y= new Boolean; var cars = new Array; var person = new Object;
1
2
3
4
5
var book = new String;
var x= new Number;
var y= new Boolean;
var cars = new Array;
var person = new Object;



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

اکنون که با نوع داده در جاوا اسکریپت آشنا شدید، خوب است که درس خود را با یک مثال مفهومی به پایان برسانیم. مثال زیر نشان می دهد که چطور کامپیوتر بر روی انواع داده ها محاسبات و تبدیل نوع داده انجام می دهد.
<!DOCTYPE html> <html> <body> <p id="demo1"></p> <p id="demo2"></p> <p id="demo3"></p> <script> var x = 16 + "Volvo"; document.getElementById("demo1").innerHTML = “The value x is” + x; var y = 16 + 4 + "Volvo"; document.getElementById("demo2").innerHTML = “The value y is” + y; var z = "Volvo" + 16 + 4; document.getElementById("demo3").innerHTML = “The value z is” + z; </script> </body> </html>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!DOCTYPE html>
<html>
<body>
<p id="demo1"></p>
<p id="demo2"></p>
<p id="demo3"></p>
<script>
var x = 16 + "Volvo";
document.getElementById("demo1").innerHTML = “The value x is” + x;
var y = 16 + 4 + "Volvo";
document.getElementById("demo2").innerHTML = “The value y is” + y;
var z = "Volvo" + 16 + 4;
document.getElementById("demo3").innerHTML = “The value z is” + z;
</script>
</body>
</html>


خروجی:
The value x is 16Volvo The value y is 20Volvo The value z is Volvo164
1
2
3
The value x is 16Volvo
The value y is 20Volvo
The value z is Volvo164


جاوا اسکریپت محاسبات را از چپ به راست انجام می دهد. در مثال بالا متغیر x نشان می دهد که هرگاه یک عدد را با رشته جمع نماییم، عدد تبدیل به رشته شده و سپس خروجی به صورت ترکیب آن دو به نمایش در می آید. در متغیر y نیز ابتدا مجموع اعداد محاسبه شده و حاصل آن با رشته Volvo ادغام گشته است. همچنین برای متغیر z اول Volvo با 16 ادغام و آنگاه با 4 ترکیب می شود و خروجی را به صورت Volvo164 باز می گرداند.