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 در جی‌کوئری


متدNumber()داده را به یک عدد تبدیل می‌کند، متدString()داده را به یک رشته متنی یا (به انگلیسی: String)، متدBoolean() داده را به یک داده بولین (به انگلیسی: Boolean) تبدیل می‌کند. [۱]

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

در جاوااسکریپت ما ۵ نوع داده مختلف داریم که می‌توانند شامل مقادیری باشند:

  • string
  • number
  • boolean
  • object
  • function

۶ نوع از اشیاء وجود دارد:

  • Object
  • Date
  • Array
  • String
  • Number
  • Boolean

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

  • null
  • undefined

عملگر 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                   // Returns "object"

لطفاً به خاطر بسپارید:

  • نوع دادهNaN، نوع عددی یا number است.
  • نوع داده یک آرایه object یا شیء است.
  • نوع داده date یک object یا شیء است.
  • نوع داده null یک شیء یا object است.
  • نوع دادهٔ یک متغیر تعریف نشده undefined است.
  • نوع داده متغیر تعریف شده و مقدار دهی نشده نیز undefined است.


نوع داده typeof

عملگرtypeof Typeof یک متغیر نیست. یک عملگر است. عملگرها(+ - * /)هیچ گونه نوع داده‌ای ندارند.

اما عملگرtypeofهمیشه یک رشته متنی (که شامل نوع عملگر است) را برمی‌گرداند.

ویژگی سازنده (به انگلیسی: constructor)

ویژگیconstructorتابع constroctor را برای تمامی متغیرها در جاوااسکریپت برمی‌گرداند.

مثال

"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 برای بررسی اینکه آیا یک شیء یک آرایه نیز هست استفاده کنید. (شامل کلمهArrayمی‌شود):

مثال

function isArray(myArray) {
  return myArray.constructor.toString().indexOf("Array") > -1;
}

و یا حتی ساده‌تر، شما می‌توانید بررسی کنید که آیا یک شیء یک تابع آرایه است:

مثال

function isArray(myArray) {
  return myArray.constructor === Array;
}

شما می‌توانید با استفاده از ویژگی constructor برای بررسی اینکه آیا یک شیء از نوعDateاست یا نه استفاده کنید (شامل کلمه "Date"):

مثال

function isDate(myDate) {
  return myDate.constructor.toString().indexOf("Date") > -1;
}

و یا حتی ساده‌تر، شما می‌توانید بررسی کنید که آیا یک شیء یک تابع تاریخ و زمان یا Date است:

مثال

function isDate(myDate) {
  return myDate.constructor === Date;
}

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

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

  • با استفاده از یک تابع در جاوااسکریپت
  • به صورت خودکار توسط خود جاوااسکریپت

تبدیل اعداد به رشته‌های متنی (به انگلیسی: String)

تابع global یا کلیString()می‌تواند اعداد را به رشته‌های متنی تبدیل می‌کند.

این تابع را می‌توان بر روی هر نوعی از اعداد، literalها، متغیرها و عبارات به کار برد:

مثال

String(x)         // returns a string from a number variable x
String(123)       // returns a string from a number literal 123
String(100 + 23)  // returns a string from a number from an expression

متدtoString()از شیء Number مشابه متد ToString کلی (به انگلیسی: Global) است.

مثال

x.toString()
(123).toString()
(100 + 23).toString()

در فصل NumberMethods یا متدهای اعداد، شما مطالب بیشتری را در مورد متدهایی که می‌توان برای تبدیل اعداد به رشته‌های متنی استفاده کرد، خواهید آموخت:

توضیحات متد
یک رشته متنی را به همراه یک عدد گرد شده و به صورت عدد علمی برمی‌گرداند. toExponential()
یک رشته متنی را با یک عدد گرد شده و به همراه تعداد به خصوصی از اعشار برمی‌گرداند. toFixed()
یک رشته متنی را با یک عدد و طول به خصوص برمی گرداند. toPrecision()

تبدیل بولین‌ها به رشته‌های متنی

متد کلی یاString() global, می‌تواند مقادیر بولین را به رشته‌های متنی تبدیل کند.

String(false)      // returns "false"
String(true)       // returns "true"

متدtoString()شیء boolean مانند متدtoString()کلی عمل می‌کند.

false.toString()   // returns "false"
true.toString()    // returns "true"

تبدیل تاریخ و زمان به رشته‌های متنی

متد کلی یاString() global, می‌تواند تاریخ و زمان را به رشته‌های متنی تبدیل کند.

String(Date())  // returns "Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)"

متدtoString()شیء Date عمل مشابهی را انجام می‌دهد.

مثال

Date().toString()  // returns "Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)"

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

متد توضیحات
getDate() شماره روز را به صورت یک عدد دریافت می کند. (۳۱–۱)
getDay() شماره روز هفته را دریافت می‌کند .(۶–۰)
getFullYear() شماره چهاررقمی سال را دریافت می‌کند. (yyyy)
getHours() شماره ساعت را دریافت می‌کند. (۲۳–۰)
getMilliseconds() شماره میلی ثانیه را دریافت می‌کند .(۹۹۹–۰)
getMinutes() شماره دقیقه را دریافت می‌کند .(۵۹–۰)
getMonth() شماره ماه را دریافت می‌کند .(۱۱–۰)
getSeconds() شماره ثانیه را دریافت می‌کند. (۵۹–۰)
getTime() زمان را به صورت میلی ثانیه (از یک ژانویه ۱۹۷۰) دریافت می‌کند.

تبدیل رشته‌های متنی به اعداد

متد کلی یاglobal Number(), می‌تواند رشته‌های متنی را به اعداد تبدیل کند.

رشته‌های متنی ای که شامل اعداد هستند (مانند "۳٫۱۴") به اعداد تبدیل می‌شوند (همانند ۳٫۱۴).

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

هر چیز دیگری بهNaN(یک عدد نیست) تبدیل می‌شود.

Number("3.14")    // returns 3.14
Number(" ")       // returns 0
Number("")        // returns 0
Number("99 88")   // returns NaN

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

متد توضیحات
parseFloat() یک رشته متنی دارای عدد را به یک عدد اعشاری تبدیل می‌کند
parseInt() یک رشته متنی دارای عدد را به یک عدد صحیح تبدیل می‌کند.

عملگر + می‌تواند برای تبدیل رشته‌های متنی به اعداد استفاده شود:

مثال

var y = "5";      // y is a string
var x = + y;      // x is a number

اگر یک متغیر تبدیل نشود، آن متغیر از نوع عددی باقی خواهد ماند اما مقدار آن برابر باNaNیا یک عدد نیست خواهد بود:

مثال

var y = "John";   // y is a string
var x = + y;      // x is a number (NaN)

تبدیل مقادیر بولین به اعداد

متد کلی یا global Number(), می‌تواند برای تبدیل بولین‌ها به اعداد استفاده شوند.

Number(false)     // returns 0
Number(true)      // returns 1

تبدیل تاریخ و زمان به اعداد

از متد کلی یاglobal Number()، می‌توان برای تبدیل تاریخ و زمان به عدد استفاده کرد.

d = new Date();
Number(d)          // returns 1404568027739

متدgetTime()از شیء Date کار یکسانی را انجام می‌دهد.

d = new Date();
d.getTime()        // returns 1404568027739

تبدیل نوع خودکار در جاوااسکریپت

زمانی که جاوااسکریپت سعی می‌کند یک عملیات را روی نوع داده اشتباه انجام دهد، جاوااسکریپت سعی خواهد کرد که نوع آن را به نوع داده درست تبدیل کند.

نتیجه همیشه آن چیزی نیست که شما انتظار دارید:

5 + null    // returns 5         because null is converted to 0
"5" + null  // returns "5null"   because null is converted to "null"
"5" + 2     // returns "52"      because 2 is converted to "2"
"5" - 2     // returns 3         because "5" is converted to 5
"5" * "2"   // returns 10        because "5" and "2" are converted to 5 and 2

تبدیل خودکار رشته‌های متنی

جاوااسکریپت زمانی که شما سعی می‌کنید یک متغیر یا یک شیء را به عنوان خروجی نمایش هید به طور خودکار متدtoString()آن متغیر یا شیء را فراخوانی می‌کند:

// if myVar = {name:"Fjohn"}  // toString converts to "[object Object]"
// if myVar = [1,2,3,4]       // toString converts to "1,2,3,4"
// if myVar = new Date()      // toString converts to "Fri Jul 18 2014 09:08:55 GMT+0200"

اعداد و بولین‌ها نیز تبدیل می‌شوند، اما این امر چندان به چشم نمی‌آید:

// if myVar = 123             // toString converts to "123"
// if myVar = true            // toString converts to "true"
// if myVar = false           // toString converts to "false"

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

این جدول نتیجه تبدیل مقادیر مختلف را به اعداد، رشته‌های متنی و بولین نشان می‌دهد:

مقدار اصلی تبدیل شده به عدد تبدیل شده به رشته متنی تبدیل شده به بولین Try it
False ۰ "false" False
True ۱ "true" True
۰ ۰ "۰" False
۱ ۱ "۱" True
"۰" ۰ "۰" True
"۰۰۰" ۰ "۰۰۰" True
"۱" ۱ "۱" True
NaN NaN "NaN" False
Infinity Infinity "Infinity" True
-Infinity -Infinity "-Infinity" True
"" ۰ "" False
"۲۰" ۲۰ "۲۰" True
"twenty" NaN "twenty" True
[ ] ۰ "" true
[۲۰] ۲۰ "۲۰" true
[۱۰٬۲۰] NaN "۱۰٬۲۰" True
["twenty"] NaN "twenty" True
["ten","twenty"] NaN "ten,twenty" True
function(){} NaN "function(){}" True
{ } NaN "[object Object]" True
Null ۰ "null" False
Undefined NaN "undefined" false

مقادیری که درون" "قرار گرفته‌اند مقادیر رشته‌ای هستند.

مقادیر قرمز رنگ، مقادیر هستند که ممکن است (برخی) از برنامه نویسان انتظار آن را نداشته باشند.

منابع آموزشی