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

از ویکی کد
پرش به ناوبری پرش به جستجو
دورهٔ آموزشی جاوااسکریپت
Javascript.jpg
جاوااسکریپت
موارد آموزشی
۱آموزش جاوااسکریپت
۲مقدمه‌ای بر جاوااسکریپت
۳قوانین و اصول اولیه زبان جاوااسکریپت
۴خروجی جاوااسکریپت
۵عبارت‌ها در جاوااسکریپت
۶شیوهٔ نوشتن دستورات در جاوااسکریپت
۷نظرات یا کامنت‌ها (Comments) در جاوااسکریپت
۸متغیرها در جاوااسکریپت
۹عملگرهای جاوااسکریپت
۱۰عملگرهای ریاضی در جاوااسکریپت
۱۱عملگرهای مقداردهی در جاوااسکریپت
۱۲انواع داده‌ها در جاوااسکریپت
۱۳توابع در جاوااسکریپت
۱۴اشیاء (object) در جاوااسکریپت
۱۵رویدادها در جاوااسکریپت
۱۶رشته‌های متنی (string) در جاوااسکریپت
۱۷متدهای نوع داده متنی یا رشته‌ای در جاوااسکریپت
۱۸اعداد در جاوااسکریپت
۱۹متدهای داده‌های عددی در جاوااسکریپت
۲۰آرایه‌ها در جاوااسکریپت
۲۱متدهای آرایه در جاوااسکریپت
۲۲مرتب‌سازی آرایه‌ها در جاوااسکریپت
۲۳متدهای پیمایش آرایه در جاوااسکریپت
۲۴اشیاء تاریخ و زمان در جاوااسکریپت
۲۵فرمت‌های تاریخ و زمان در جاوااسکریپت
۲۶متدهای دریافت تاریخ و زمان در جاوااسکریپت
۲۷متدهای تنظیم زمان و تاریخ در جاوااسکریپت
۲۸شی ریاضی (Math) در جاوااسکریپت
۲۹ایجاد عدد تصادفی در جاوااسکریپت
۳۰مقادیر بولین (Booleans) در جاوااسکریپت
۳۱عملگرهای منطقی و مقایسه‌ای در جاوااسکریپت
۳۲ساختار if else و else if در جاوااسکریپت
۳۳تکه کد Switch در جاوا اسکریپت
۳۴حلقه For در جاوااسکریپت
۳۵حلقه While در جاوااسکریپت
۳۶کلمات کلیدی Break و Continue در جاوااسکریپت
۳۷تبدیل نوع داده‌ها در جاوااسکریپت
۳۸عملیات‌های بیتی در جاوااسکریپت
۳۹عبارات با قاعده در جاوااسکریپت
۴۰خطاها در جاوااسکریپت - رخ دادن خطا و رفع آن
۴۱Scope در جاوااسکریپت
۴۲Hoisting یا جا به جایی کدها در جاوااسکریپت
۴۳استفاده از مد یا حالت سخت‌گیرانه (use strict) در جاوااسکریپت
۴۴کلمه کلیدی This در جاوااسکریپت
۴۵کلمه کلیدی Let در جاوااسکریپت
۴۶ثابت‌ها در جاوااسکریپت
۴۷تعریف توابع به صورت پیکان
۴۸کلاس‌ها در جاوااسکریپت
۴۹اشکال‌زدایی در جاوااسکریپت
۵۰راهنمای استایل و استانداردهای کدنویسی در جاوااسکریپت
۵۱بهترین تمرینات جاوااسکریپت
۵۲اشتباهات رایج در برنامه‌نویسی جاوااسکریپت
۵۳کارایی در جاوااسکریپت
۵۴کلمات رزرو شده در جاوااسکریپت
۵۵ورژن‌های جاوااسکریپت
۵۶ECMAScript 5 - JavaScript 5
۵۷ECMAScript 6 - ECMAScript 2015
۵۸جیسون (JSON) در جاوااسکریپت
فرم‌ها
۱فرم‌ها در جاوااسکریپت
۲API ارزشیابی در جاوااسکریپت
اشیاء (object) در جاوااسکریپت
۱تست
۲تست
۳تست
۴تست
۵تست
۶تست
۷تست
JS Functions
۱تست
۲تست
۳تست
۴تست
۵تست
۶تست
JS HTML DOM
۱تست
۲تست
۳تست
۴تست
۵تست
۶تست
۷تست
۸تست
۹تست
۱۰تست
۱۱تست
۱۲تست
۱۳تست

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

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

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

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

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

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

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

var x = 16 + "Volvo";

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

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

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

مثال

var x = 16 + "Volvo";

مثال

var x = "Volvo" + 16;

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

جاوااسکریپت

var x = 16 + 4 + "Volvo";

نتیجه:

20Volvo

جاوااسکریپت

var x = "Volvo" + 16 + 4;

نتیجه:

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

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

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

مثال

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

داده‌های متنی (String) در جاوااسکریپت

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

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

مثال

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

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

مثال

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

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

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

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

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

مثال

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

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

مثال

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

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

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

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

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

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

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

مثال

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

Array indexes are zero-based, which means the first item is [0], second is [1], and so on.

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

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

اشیاء (Objects) در جاوااسکریپت

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

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

مثال

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

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

  • نام
  • نام خانوادگی
  • سن
  • رنگ چشم.

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

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

شما می‌توانید برای پیدا کردن نوع یک متغیر از عملگر​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"

مقدار تعریف نشده (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 باشد.

مثاال

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

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

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

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

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

typeof undefined           // undefined
typeof null                // object

null === undefined         // false
null == undefined          // true

نوع داده Primitive

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

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

  • ​string​
  • ​number​
  • ​boolean​
  • ​undefined​

مثال

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)

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

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

  • ​function​
  • ​object​

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

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

مثال

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​" را برای آرایه‌ها به عنوان خروجی بازمی‌گرداند، زیرا که در جاوااسکریپت آرایه‌ها نوعی شیء (object) هستند.

منابع آموزشی