در جاوااسكريپت پنچ نوع داده مختلف كه داراي مقدارند مطابق زير ميباشند.
در جاوااسكريپت شش نوع شئ وجود دارد:
و دونوع داده كه داراي مقدار نيستند وجود دارد:
با عملگرtypeof ميتوان نوع داده متغيرجاوااسكريپت را مشخص نمود .
مثال ـ تعين نوع داده باtypeof
typeof "John" // Returns "string" typeof 3.14 // Returns "number" typeof NaN // Returns "number" typeof false // Returns "boolean" typeof [1,2,3,4] // Returns "object" typeof {name:'John', age:34} // Returns "object" typeof new Date() // Returns "object" typeof function () {} // Returns "function" typeof myCar // Returns "undefined" * typeof null
بموارد زير توجه فرمائيد:
نمينوانtypeof ،را براي موارديكه آرايه ويا تاريخ شئ جاوااسكريپت باشند استفاده كرد.
يك مقدار داده اي اوليه، مقداري ساده وفاقد ويژگي و متد اضافي است.
عملگرtypeof براي مقادير اوليه ميتواند نوع هاي زيرا برگشت دهد .
مثال ـ عملگرtypeof براي مقادير اوليه
typeof "John" // Returns "string" typeof 3.14 // Returns "number" typeof true // Returns "boolean" typeof false // Returns "boolean" typeof x // return "undefined" (if x has no value)
عملگرtypeof براي داده هاي پيچيده دونوع اعلام ميكند :
عملگرtypeofبراي آرايه، اشياء وnull نوع"object" رابرگشت ميدهد . اما براي توابع"object"برگشت نمي دهد .
مثال ـ داده هاي پيچيده باtypeof
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"
typeof براي آرايه"object" برگشت ميدهد، چون آرايه ها در جاوااسكريپت شئ هستند.
عملگرtypeof يك متغير نيست . آن يك عملگراست .عملگري هاي (+,-,*,/) داراي نوع داده اي(Data Type) نيستند .
اما عملگرtypeofهميشه رشته اي رابرگشت ميدهد، كه محتوي آن رشته نوع عملوند (oprand)آنرا مشخص ميكند .
ويژگيconstructor تابع سازنده براي همه متغير هاي جاوااسكريپت را برگشت ميدهد .
مثال ـ ويژگي ساخت تابع سازنده را برگشت ميدهد.
"John".constructor // Returns function String() {[native code]} (3.14).constructor // Returns function Number() {[native code]} false.constructor // Returns function Boolean() {[native code]} [1,2,3,4].constructor // Returns function Array() {[native code]} {name:'John',age:34}.constructor // Returns function Object() {[native code]} new Date().constructor // Returns function Date() {[native code]} function () {}.constructor // Returns function Function(){[native code]}
هر شئ ممكن است داراي يك تابع سازنده باشد .در جاوااسكريپت با متغيرها وداده هاي ثابت بعنوان شئ نگاه ميشود، وآنها داراي تابع سازنده اند .ويژگي ساختconstructor آن تابع را برگشت ميدهد.
از ويژگي ساخت ميتوان براي تشخيص آرايه بودن يك شئ استفاده نمود.
مثال ـ نمونه كنترل آرايه بودن شئ
function isArray(myArray) { return myArray.constructor.toString().indexOf("Array") > -1; }
بفرم ساده تر مي توانيد بررسي كنيد، كه آيا شئ يكArray function است يا خير
مثال ـ كنترل شئ برايArray function بودن
function isArray(myArray) { return myArray.constructor === Array; }
با ويژگي ساخت ميتوان بررسي تاريخ بودن شئي را انجام داد .بايد در محتوي برگشتي كلمه"Date" كنترل شود.
مثال ـ كنترل تاريخ بودن شئ با ويژگي ساخت
function isDate(myDate) { return myDate.constructor.toString().indexOf("Date") > -1; }
مثال ـ حتي بروش ساده تر ميتوانيدDate function را كنترل نمائيد.
function isDate(myDate) { return myDate.constructor === Date; }
در جاوااسكريپت متغيريكه مقدار دهي نشده باشد، داراي مقدارundefined ميباشد. نوع آن همundefined است .
مثال ـundefined
let car; // Value is undefined, type is undefined
هر متغيري را ميتوان با تنظيم بهundefinedخالي نمود، اما نوع آن undefinedميگردد .
مثال ـ تنظيم مفدار متغير باundefined
car = undefined; // Value is undefined, type is undefined
يك مقدار تهي هيچ ربطي بهundefined ندارد .يك رشته تهي هم ارزش قانوني داشته و داراي نوع ميباشد.
مثال ـ رشته اي تهي
let car = ""; // The value is "", the typeof is "string"
در جاوااسكريپتNull هيچي ا ست، فرض براين است كه چيزيست كه وجود ندارد .
متاسفانه در جاوااسكريپتnull از نوع داده اي يك شئ بحساب ي آيد . ميتوان آنرا در جاوااسكريپت يك باگ دانست ، كهtypeof null شئ بوده كه بايد null باشد .
ميتوان يك شئ را باتنظيم آن بهnull خال نمود .
مثال ـ خالي كردن شئ
let person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
person = null; // Now value is null, but type is still an object
همچنين ميتوان يك شئ را با تنظيم آن بهundefined خالي يا تهي نمود .
مثال ـ تهي نمودن شئ با تنظيم بهundefined
let person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
person = undefined; // Now both value and type is undefined
undefindeو null داراي مقادير مساويند، اما از نظر نوع متفاوت هستند.
typeof undefined // undefined typeof null // object null === undefined // false null == undefined // true
عملگرinstanceofدر صورتيكه يك شئ نمونه از شئ مشخصي باشد true برگشت ميدهد.
مثال ـ كنترل نمونه شئي
const cars = ["Saab", "Volvo", "BMW"]; (cars instanceof Array); (cars instanceof Object); (cars instanceof String); (cars instanceof Number);
عملگرvoid عبارتي را ارزيابي ميكند و undefined برگشت ميدهد .اين عملگر اغلب براي مقدار اوليه تعريف نشده بفرمvoid(0) استفاده ميشود . همچنين از آن براي اجراي عباراتي بدون توجه به نتيجه برگشتي بكار گرفته ميشود.
مثال ـ عملگرvoid
<a href="javascript:void(0);"> Useless link </a> <a href="javascript:void(document.body.style.backgroundColor='red');"> Click me to change the background color of body to red </a>