تبدیل نوع در JavaScript
یادگیری JavaScript()Number به یک عدد تبدیل می شود، ()String به یک رشته تبدیل می شود، ()Boolean به یک Boolean تبدیل می شود.
انواع داده های جاوااسکریپت
در جاوا اسکریپت 5 نوع داده مختلف وجود دارد که می تواند شامل مقادیر باشد:
- string
- number
- boolean
- object
- function
سه نوع از اشیا وجود دارد:
- Object
- Date
- Array
و 2 نوع داده ای که نمی توانند شامل مقادیر باشند:
- 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 تعداد است
- نوع داده آرایه یک شی است
نوع داده تاریخ یک شیء است
نوع داده null شی است
نوع داده یک متغیر نامشخص ، نامشخص است *
نوع داده متغیری که مقدار داده نشده است نیز نامشخص است *
نوع داده از typeof
عملگر typeof یک متغیر نیست. این یک اپراتور است اپراتورها (+ - * /) هیچ نوع داده ای ندارند
اما، عملگر typeof همیشه یک رشته (حاوی نوع عملگر) را بازگرداند.
ویژگی constructor
ویژگی constructor تابع constructor را برای تمام متغیرهای جاوا اسکریپت باز می گرداند.
"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 را بررسی کنید که آیا یک شیء آرایه است (شامل کلمه "آرایه"):
function isArray(myArray) {
return myArray.constructor.toString().indexOf("Array") > -1;
}
مشاهده مثالیا حتی ساده تر، شما می توانید بررسی کنید که آیا شیء یک تابع آرایه است:
function isArray(myArray) {
return myArray.constructor === Array;
}
مشاهده مثالشما می توانید ویژگی constructor را بررسی کنید که آیا یک شی تاریخ است (شامل کلمه "تاریخ"):
function isDate(myDate) {
return myDate.constructor.toString().indexOf("Date") > -1;
}
مشاهده مثالیا حتی ساده تر، شما می توانید بررسی کنید که آیا شیء یک تابع تاریخ است:
function isDate(myDate) {
return myDate.constructor === Date;
}
مشاهده مثالتبدیل نوع جاوا اسکریپت
متغیرهای جاوا اسکریپت می توانند به یک متغیر جدید و دیگری نوع داده تبدیل شوند:
- با استفاده از یک عملکرد جاوا اسکریپت
- به صورت خودکار توسط جاوااسکریپت
تبدیل اعداد به رشته ها
روش سراسری ()String می تواند اعداد را به رشته تبدیل کند.
این می تواند بر روی هر نوع اعداد، ادبیات، متغیرها یا عبارات استفاده شود:
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
مشاهده مثالروش Number با ()toString یکسان است.
x.toString()
(123).toString()
(100 + 23).toString()
مشاهده مثالدر فصل Number Methods، روش های بیشتری را می توانید برای تبدیل اعداد به رشته ها پیدا کنید:
تبدیل بولین به رشته ها
روش سراسری ()String می تواند بولین ها را به رشته ها تبدیل کند.
String(true) // returns "true"
روش Boolean به ()toString یکسان است.
true.toString() // returns "true"
تبدیل تاریخ به رشته ها
روش سرلپاسری ()String می تواند تاریخ را به رشته تبدیل کند.
روش Date به ()toString یکسان است.
در فصل روش های تاریخ، روش های بیشتری را می توانید برای تبدیل تاریخ به رشته ها پیدا کنید:
تبدیل رشته به اعداد
روش سراسری ()number می تواند رشته ها را به اعداد تبدیل کند
رشته هایی حاوی اعداد (مانند "3.14") به اعداد تبدیل می شوند (مثل 3.14).
رشته های خالی به 0 تبدیل می شوند.
هر چیز دیگری به NaN تبدیل می شود (نه یک عدد).
Number(" ") // returns 0
Number("") // returns 0
Number("99 88") // returns NaN
در فصل Number Methods، روش های بیشتری را می توانید برای تبدیل رشته ها به اعداد پیدا کنید:
اپراتور +Unary
اپراتور +unary می تواند برای تبدیل یک متغیر به یک عدد استفاده شود:
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)
مشاهده مثالتبدیل بولین به اعداد
روش سراسری ()Number همچنین می تواند بولین ها را به اعداد تبدیل کند.
Number(true) // returns 1
تبدیل تاریخ به اعداد
روش سراسری ()Number می تواند برای تبدیل تاریخ به اعداد استفاده شود.
Number(d) // returns 1404568027739
روش ()getTime همانند است.
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"
اعداد و booleans نیز تبدیل می شوند، اما این بسیار قابل مشاهده نیست:
// if myVar = true // toString converts to "true"
// if myVar = false // toString converts to "false"
نظر شما
>