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

از ویکی کد
پرش به ناوبری پرش به جستجو
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 ساخت نمونه مثال این بخش در دست اقدام است.


منابع آموزشی