انواع داده‌ها

از ویکی‌کد، دانشنامهٔ برنامه‌نویسی
پرش به ناوبری پرش به جستجو
Main Page Tutorial
JavaScript-menu.png
موارد آموزشی
فرم‌ها در جاوا اسکریپت
اشیاء در جاوا اسکریپت
تابع در جاوا اسکریپت
HTML DOM در جاوا اسکریپت
Browser BOM در جاوا اسکریپت
AJAX در جاوا اسکریپت
JSON در جاوا اسکریپت
جی‌کوئری در برابر جاوا اسکریپت
مثال های جاوا اسکریپت
مرجع جاوا اسکریپت

متغیرها در جاوا اسکریپت می‌توانند داده های مختلفی را ذخیره کنند. [۱]


مانند: اعداد، متن‌ها یا رشته‌ها (به انگلیسی: stringاشیاء (به انگلیسی: object) و بسیاری دیگر:

1 var length = 16;                               // Number
2 var lastName = "Johnson";                      // String
3 var x = {firstName:"John", lastName:"Doe"};    // Object

مفهوم انواع داده در زبان های برنامه نویسی

در برنامه‌نویسی، انواع داده‌ها مفهوم مهمی هستند.

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

بدون انواع داده‌ها، یک کامپیوتر نمی‌تواند یک خط کد زیر را درک کند:

var x = 16 + "Volvo";

آیا اینکه کلمه "volvo" با عدد ۱۶ جمع شود، مفهوم و معنی‌ای دارد؟ آیا این عمل موجب بروز خطا می‌شود یا این عمل نتیجه‌ای خواهد داشت؟

زبان جاوا اسکریپت یک خط کد بالا را به صورت زیر در نظر می‌گیرد:

var x = 16 + "Volvo";
زمانی که شما یک عدد را با یک متن (به انگلیسی: string) جمع می‌کنید، جاوا اسکریپت عدد را نیز به عنوان یک متن در نظر می‌گیرد.

مثال

var x = 16 + "Volvo";


مشاهدهٔ نتیجه


مثال

var x = "Volvo" + 16;


مشاهدهٔ نتیجه


جاوا اسکریپت کدها را از سمت چپ به راست اجرا می‌کند. نوشتن کدها به صورت‌های متفاوت می‌تواند موجب نتایج متفاوتی شود:

جاوا اسکریپت

var x = 16 + 4 + "Volvo";

نتیجه:

20Volvo

مشاهدهٔ نتیجه

جاوا اسکریپت

var x = "Volvo" + 16 + 4;

نتیجه:

Volvo164

مشاهدهٔ نتیجه


  • در مثال اول، جاوا اسکریپت عدد ۱۶ و ۴ را به عنوان یک نوع داده عددی در نظر می‌گیرد تا زمانی که به کلمه "Volvo" می‌رسد.
  • در مثال دوم، از آنجایی که عملوند اول عبارت یک رشته متنی (به انگلیسی: String) است، تمامی سایر عملوندها نیز از نوع متنی در نظر گرفته می‌شوند.

انواع داده در جاوا اسکریپت، پویا (به انگلیسی: Dynamic) هستند.

جاوا اسکریپت انواع داده پویا دارد. این بدان معناست که یک متغیر می‌تواند برای ذخیرهٔ انواع مختلفی از دادهٔ مورد استفاده قرار بگیرد:

مثال

1 var x;           // Now x is undefined
2 x = 5;           // Now x is a Number
3 x = "John";      // Now x is a String


مشاهدهٔ نتیجه


داده های متنی (به انگلیسی: String) در جاوا اسکریپت

یک رشته (یا یک رشتهٔ متنی)، مجموعه‌ای از کاراکترهاست که در کنار یکدیگر قرار گرفته‌اند همانند "John Doe".

داده‌های متنی با علامت تک کوتیشن ' یا دابل کوتیشن " نوشته می‌شوند. شما می‌توانید هم از تک کوتیشن ' و هم از دابل کوتیشن " استفاده کنید:

مثال

1 var carName1 = "Volvo XC60";   // Using double quotes
2 var carName2 = 'Volvo XC60';   // Using single quotes


مشاهدهٔ نتیجه


شما می‌توانید از کوتیشن‌ها در درون یک رشته متنی استفاده کنید، البته فقط تا زمانی که کوتیشنی که استفاده می‌کنید با کوتیشنی که متن رشته‌ای شما در آن قرار گرفته است یکسان نباشد:

مثال

1 var answer1 = "It's alright";             // Single quote inside double quotes
2 var answer2 = "He is called 'Johnny'";    // Single quotes inside double quotes
3 var answer3 = 'He is called "Johnny"';    // Double quotes inside single quotes


مشاهدهٔ نتیجه


شما در مورد رشته‌های متنی در فصول آینده، مطالب بیشتری را خواهید آموخت.

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

جاوا اسکریپت فقط یک نوع عدد را می‌شناسد.

  • اعداد می‌توانند به صورت اعشاری یا بدون اعشار نوشته شوند:

مثال

1 var x1 = 34.00;     // Written with decimals
2 var x2 = 34;        // Written without decimals


مشاهدهٔ نتیجه


اعداد بسیار بزرگ یا اعداد بسیار کوچک را می‌تواند به صورت عدد علمی نوشت:

مثال

1 var y = 123e5;      // 12300000
2 var z = 123e-5;     // 0.00123


مشاهدهٔ نتیجه

شما در مورد نوع دادهٔ عددی در فصول آینده، مطالب بیشتری را خواهید آموخت.

نوع داده‌ای بولین (به انگلیسی: Boolean)

نوع داده‌ای بولین تنها می‌تواند دو مقدار داشته باشد: true یا false.

مثال

1 var x = 5;
2 var y = 5;
3 var z = 6;
4 (x == y)       // Returns true
5 (x == z)       // Returns false


مشاهدهٔ نتیجه


نوع داده‌ای بولین، معمولا در شرط‌ها استفاده می‌شوند.

شما در مورد شرط‌ها در فصول آینده، مطالب بیشتری را خواهید آموخت.

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

آرایه‌ها در جاوا اسکریپت درون براکت‌ها [ ] نوشته می‌شوند.

عناصر یک آرایه توسط علامت ویرگول (Comma) از یکدیگر جدا می‌شوند.

تیکه کد زیر، یک آرایه تعریف (می‌سازد) می‌کند که cars نام دارد و سه عضو (نام اتومبیل‌ها) دارد:

مثال

var cars = ["Saab", "Volvo", "BMW"];


مشاهدهٔ نتیجه


اَندیس آرایه‌ها در جاوا اسکریپت از صفر شروع می‌شود، این بدان معناست که اَندیس اولین عضو [0]، دومین عضو [1]، و بدین ترتیب تا آخرین عنصر آرایه ادامه دارد.

شما در مورد آرایه‌ها در فصول آینده، مطالب بیشتری را خواهید آموخت.

اشیاء (به انگلیسی: Objects) در جاوا اسکریپت

اشیاء در جاوا اسکریپت درون علامت آکولاد { } نوشته می‌شوند.

مقدار ویژگی‌های شیء به صورت نام:مقدار (name:value) درون آکولاد نوشته می‌شوند و ویژگی‌های یک شیءنیز به وسیلهٔ علامت ویرگول , از یکدیگر جدا می‌شوند.

مثال

var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};


مشاهدهٔ نتیجه


شیء فرد (به انگلیسی: person) در مثال بالا، دارای چهار ویژگی است:

  • نام
  • نام خانوادگی
  • سن
  • رنگ چشم.
شما در مورد اشیاء در فصول آینده، مطالب بیشتری را خواهید آموخت.

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

شما می‌توانید برای پیدا کردن نوع یک متغیر از عملگر typeof استفاده کنید.

عملگر typeof نوع یک متغیر یا یک عبارت را به عنوان نتیجه برمی‌گرداند:

مثال

1 typeof ""             // Returns "string"
2 typeof "John"         // Returns "string"
3 typeof "John Doe"     // Returns "string"


مشاهدهٔ نتیجه


مثال

1 typeof 0              // Returns "number"
2 typeof 314            // Returns "number"
3 typeof 3.14           // Returns "number"
4 typeof (3)            // Returns "number"
5 typeof (3 + 4)        // Returns "number"


مشاهدهٔ نتیجه


مقدار تعریف نشده (به انگلیسی: Undefined)

یک متغیر خالی یا بدون مقدار در جاوا اسکریپت ، به صورت پیشفرض مقدار و نوع آن undefind (تعریف نشده) در نظرگرفته می شود.

مثال

var car;    // Value is undefined, type is undefined


مشاهدهٔ نتیجه


اگر هر متغیری را با مقدار undefind مقداردهی کنیم، این متغیر یک متغیر خالی در نظر گرفته می‌شود. نوع این متغیر نیز در این صورت، undefind یا تعریف نشده خواهد بود.

مثال

car = undefined;    // Value is undefined, type is undefined


مشاهدهٔ نتیجه


مقادیر خالی

یک مقدار خالی " " با مقدار undefind یا تعریف نشده برابر نیست.

یک مقدار خالی از نوع رشتهٔ متنی (به انگلیسی: string) هر دو (هم متغیر و هم داده درون آن) یک نوع داده صحیح دارند.

مثال

var car = "";    // The value is "", the typeof is "string"


مشاهدهٔ نتیجه


مقدار هیچ (به انگلیسی: Null)

در جاوا اسکریپت مقدار null، به معنی «هیچی» است. از این مقدار زمانی استفاده می‌شود که چیزی وجود نداشته باشد.

متأسفانه در جاوا اسکریپت، نوع داده‌ای مقدار null یک شیء (به انگلیسی: object) است.

شما می‌توانید این نتیجه را یعنی نتیجهٔ عملگر typeofب رای مقدار null را که برابر با object است را به عنوان یک باگ در نظر بگیرید.

نوع بازگشتی عملگر typeof برای مقدار null می‌بایست همان null باشد.

مثاال

1 var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
2 person = null;    // Now value is null, but type is still an object


مشاهدهٔ نتیجه


همچنین شما می‌توانید با مقداردهی یک شیء به مقدار undefined، آن متغیر را خالی کنید.

1 var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
2 person = undefined;   // Now both value and type is undefined


مشاهدهٔ نتیجه


تفاوت بین Undefined و Null در جاوا اسکریپت

مقادیر undefined و null از نظر مقدار با یکدیگر برابرند ولی از نظر نوع داده با یکدیگر متفاوت‌اند:

1 typeof undefined           // undefined
2 typeof null                // object
3 
4 null === undefined         // false
5 null == undefined          // true


مشاهدهٔ نتیجه


نوع داده Primitive

یک داده از نوع primitive یک مقدار دادهٔ ساده بدون هیچ‌گونه ویژگی یا متد اضافی است.

عملگر typeof می‌تواند یکی از این نوع داده‌های primitive را به عنوان خروجی بازگرداند:

  • string
  • number
  • boolean
  • undefined

مثال

1 typeof "John"              // Returns "string"
2 typeof 3.14                // Returns "number"
3 typeof true                // Returns "boolean"
4 typeof false               // Returns "boolean"
5 typeof x                   // Returns "undefined" (if x has no value)


مشاهدهٔ نتیجه


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

عملگر typeof می‌تواند یکی از دو مجموعه داده را نیز به عنوان خروجی برگرداند:

  • function
  • object

عملگر typeof برای اشیاء، آرایه‌ها و مقدار null، مقدار “object” را به عنوان خروجی بازمی‌گرداند.

عملوند typeof مقدار “object” را برای توابع به عنوان خروجی بازنمی‌گرداند.

مثال

1 typeof {name:'John', age:34} // Returns "object"
2 typeof [1,2,3,4]             // Returns "object" (not "array", see note below)
3 typeof null                  // Returns "object"
4 typeof function myFunc(){}   // Returns "function"


مشاهدهٔ نتیجه


عملگر typeof مقدار "object" را برای آرایه‌ها به عنوان خروجی بازمی‌گرداند، زیرا که در جاوا اسکریپت آرایه‌ها نوعی شیء هستند.

تمرینات جاوا اسکریپت

Time2wait.svg ساخت نمونه مثال این بخش در دست اقدام است.



منابع آموزشی