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

از ویکی کد
پرش به ناوبری پرش به جستجو
دورهٔ آموزشی جاوااسکریپت
Javascript.jpg
جاوااسکریپت
موارد آموزشی
۱آموزش جاوااسکریپت
۲مقدمه‌ای بر جاوااسکریپت
۳JavaScript:قوانین و اصول اولیه زبان جاوااسکریپت
۴JavaScript:خروجی جاوااسکریپت
۵JavaScript:عبارت‌ها در جاوااسکریپت
۶JavaScript:شیوهٔ نوشتن (Syntax) عبارات یا دستورات در جاوااسکریپت
۷JavaScript:نظرات یا کامنت‌ها (Comments) در جاوااسکریپت
۸JavaScript:متغیرها در جاوااسکریپت
۹JavaScript:عملگرهای جاوااسکریپت
۱۰JavaScript:عملگرهای ریاضی در جاوااسکریپت
۱۱JavaScript:عملگرهای مقداردهی در جاوااسکریپت
۱۲JavaScript:انواع داده‌ها در جاوااسکریپت
۱۳JavaScript:توابع در جاوااسکریپت
۱۴JavaScript:اشیاء (object) در جاوااسکریپت
۱۵JavaScript:رویدادها در جاوااسکریپت
۱۶JavaScript:رشته‌های متنی (string) در جاوااسکریپت
۱۷JavaScript:متدهای نوع داده متنی یا رشته‌ای در جاوااسکریپت
۱۸JavaScript:اعداد در جاوااسکریپت
۱۹JavaScript:متدهای داده‌های عددی در جاوااسکریپت
۲۰JavaScript:آرایه‌ها در جاوااسکریپت
۲۱JavaScript:متدهای آرایه در جاوااسکریپت
۲۲JavaScript:مرتب‌سازی آرایه‌ها در جاوااسکریپت
۲۳JavaScript:متدهای پیمایش آرایه در جاوااسکریپت
۲۴JavaScript:اشیاء تاریخ و زمان در جاوااسکریپت
۲۵JavaScript:فرمت‌های تاریخ و زمان در جاوااسکریپت
۲۶JavaScript:متدهای دریافت تاریخ و زمان در جاوااسکریپت
۲۷JavaScript:متدهای تنظیم زمان و تاریخ در جاوااسکریپت
۲۸JavaScript:شی ریاضی (Math) در جاوااسکریپت
۲۹JavaScript:ایجاد عدد تصادفی در جاوااسکریپت
۳۰JavaScript:مقادیر بولین (Booleans) در جاوااسکریپت
۳۱JavaScript:عملگرهای منطقی و مقایسه‌ای در جاوااسکریپت
۳۲JavaScript:ساختار if else و else if در جاوااسکریپت
۳۳JavaScript:تکه کد Switch در جاوا اسکریپت
۳۴JavaScript:حلقه For در جاوااسکریپت
۳۵JavaScript:حلقه While در جاوااسکریپت
۳۶JavaScript:کلمات کلیدی Break و Continue در جاوااسکریپت
۳۷JavaScript:تبدیل نوع داده‌ها در جاوااسکریپت
۳۸JavaScript:عملیات‌های بیتی در جاوااسکریپت
۳۹JavaScript:عبارات با قاعده در جاوااسکریپت
۴۰JavaScript:خطاها در جاوااسکریپت - رخ دادن خطا و رفع آن
۴۱JavaScript:Scope در جاوااسکریپت
۴۲JavaScript:Hoisting یا جا به جایی کدها در جاوااسکریپت
۴۳JavaScript:استفاده از مد یا حالت سخت‌گیرانه (use strict) در جاوااسکریپت
۴۴JavaScript:کلمه کلیدی This در جاوااسکریپت
۴۵JavaScript:کلمه کلیدی Let در جاوااسکریپت
۴۶JavaScript:ثابت‌ها در جاوااسکریپت
۴۷JavaScript:تعریف توابع به صورت پیکان
۴۸JavaScript:کلاس‌ها در جاوااسکریپت
۴۹JavaScript:اشکال‌زدایی در جاوااسکریپت
۵۰JavaScript:راهنمای استایل و استانداردهای کدنویسی در جاوااسکریپت
۵۱JavaScript:بهترین تمرینات جاوااسکریپت
۵۲JavaScript:اشتباهات رایج در برنامه‌نویسی جاوااسکریپت
۵۳JavaScript:کارایی در جاوااسکریپت
۵۴JavaScript:کلمات رزرو شده در جاوااسکریپت
۵۵JavaScript:ورژن‌های جاوااسکریپت
۵۶JavaScript:ECMAScript 5 - JavaScript 5
۵۷JavaScript:ECMAScript 6 - ECMAScript 2015
۵۸JavaScript:جیسون (JSON) در جاوااسکریپت
فرم‌ها
۱JavaScript:فرم‌ها در جاوااسکریپت
۲JavaScript:API ارزشیابی در جاوااسکریپت
اشیاء (Object)
۱JavaScript:اشیاء در جاوااسکریپت
۲JavaScript:ویژگی‌های اشیاء در جاوااسکریپت
۳JavaScript:متدهای اشیاء در جاوااسکریپت
۴JavaScript:روش‌های دسترسی به شیء در جاوااسکریپت
۵JavaScript:سازنده‌های شیء در جاوااسکریپت
۶JavaScript:شکل اصلی شیء در جاوااسکریپت
۷JavaScript:متدهای شیء در ورژن ES5 جاوااسکریپت
تابع
۱JavaScript:تعریف تابع در جاوااسکریپت
۲JavaScript:پارامتر توابع در جاوااسکریپت
۳JavaScript:فراخوانی تابع در جاوااسکریپت
۴JavaScript:صدا کردن تابع در جاوااسکریپت
۵JavaScript:تابع Apply در جاوااسکریپت
۶JavaScript:بسته‌ها (به انگلیسی: Closures) در جاوااسکریپت
HTML DOM
۱JavaScript:HTML DOM در جاوااسکریپت
۲JavaScript:متدهای HTML DOM در جاوااسکریپت
۳JavaScript:HTML DOM Document در جاوااسکریپت
۴JavaScript:عناصر HTML DOM در جاوااسکریپت
۵JavaScript:HTML DOM در جاوااسکریپت - تغییر محتوای HTML
۶JavaScript:DOM در جاوااسکریپت - تغییر CSS
۷JavaScript:انیمیشن در HTML DOM جاوااسکریپت
۸JavaScript:رویدادها در HTML DOM جاوااسکریپت
۹JavaScript:شنونده رویداد در HTML DOM جاوااسکریپت
۱۰JavaScript:پیمایش در HTML DOM جاوااسکریپت
۱۱JavaScript:عناصر (گره‌ها) HTML DOM در جاوااسکریپت
۱۲JavaScript:مجموعه‌های HTML DOM جاوااسکریپت
۱۳JavaScript:لیست گره‌ها در HTML DOM جاوااسکریپت
Browser BOM
۱JavaScript:پنجره جاوااسکریپت - مدل شیء مرورگر
۲JavaScript:پنجره صفحه نمایش در جاوااسکریپت
۳JavaScript:موقعیت پنجره در جاوااسکریپت
۴JavaScript:تاریخچه پنجره در جاوااسکریپت
۵JavaScript:ناوبری پنجره در جاوااسکریپت
۶JavaScript:جعبه پیغام جاوااسکریپت
۷JavaScript:رویدادهای زمان‌بندی شده در جاوااسکریپت
۸JavaScript:کوکی‌های جاوااسکریپت
AJAX
۱JavaScript:مقدمه‌ای بر AJAX
۲JavaScript:AJAX - شیء XMLHttpRequest
۳JavaScript:AJAX - ارسال یک درخواست به سرور
۴JavaScript:AJAX - پاسخ سرور
۵JavaScript:مثال‌های XML در AJAX
۶JavaScript:مثال‌های PHP در AJAX
۷JavaScript:مثال‌های ASP در AJAX
۸JavaScript:مثال پایگاه داده در AJAX
۹JavaScript:نرم‌افزارهای XML
۱۰JavaScript:مثال‌های AJAX
JSON
۱JavaScript:مقدمه‌ای بر JSON
۲JavaScript:شیوهٔ نوشتار JSON
۳JavaScript:JSON در برابر XML
۴JavaScript:انواع داده‌های مجاز در JSON
۵متد JSON.parse()
۶متد JSON.stringify()
۷JavaScript:اشیاء JSON
۸JavaScript:آرایه‌ها در JSON
۹JavaScript:PHP در JSON
۱۰JavaScript:HTML در JSON
۱۱JavaScript:JSONP
jQuery
۱JavaScript:جاوااسکریپت / انتخابگرهای DOM جی‌کوئری
۲JavaScript:جاوااسکریپت / عناصر HTML جی‌کوئری
۳JavaScript:جاوااسکریپت / استایل‌های CSS در جی‌کوئری
۴JavaScript:جاوااسکریپت / 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) هستند.

منابع آموزشی