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

از ویکی کد
(تفاوت) → نسخهٔ قدیمی‌تر | نمایش نسخهٔ فعلی (تفاوت) | نسخهٔ جدیدتر ← (تفاوت)
پرش به ناوبری پرش به جستجو

https://www.w3schools.com/js/js_type_conversion.asp

JavaScript Type Conversion

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

Number() converts to a Number, String() converts to a String, Boolean() converts to a Boolean.

متد Number() داده را به یک عدد تبدیل می کند ، متد String() داده را به یک رشته متنی یا String ، متد Boolean() داده را به یک داده boolean تبدیل می کند.

JavaScript Data Types

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

In JavaScript there are 5 different data types that can contain values:

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

  • string
  • number
  • boolean
  • object
  • function

There are 6 types of objects:

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

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

And 2 data types that cannot contain values:

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

  • null
  • undefined

The typeof Operator

عملگر Typeof

You can use the typeof operator to find the data type of a JavaScript variable.

شما می توانید از عملگر Typeof برای پیدا کردن نوع داده یک متغیر در جاوا اسکریپت استفاده کنید .

Example

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"

Please observe:

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

·  The data type of NaN is number

نوع داده NaN ، نوع عددی یا number است .

·  The data type of an array is object

نوع داده یک آرایه object یا شی است .

·  The data type of a date is object

نوع داده date  یک object  یا شی است.

·  The data type of null is object

نوع داده null یک شی یا object است.

·  The data type of an undefined variable is undefined *

نوع داده ی یک متغیر تعریف نشده undefined است.

·  The data type of a variable that has not been assigned a value is also undefined *

نوع داده متغیر تعریف شده و مقدار دهی نشده نیز undefined است .

You cannot use typeof to determine if a JavaScript object is an array (or a date).

شما نمی توانید از عملگر typeof برای بررسی اینکه یک شی یا object یک آرایه و یا یک Date  است ، استفاده کنید.

The Data Type of typeof

نوع داده typeof

The typeofoperator is not a variable. It is an operator. Operators ( + - * / ) do not have any data type.

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

But, the typeof operator always returns a string (containing the type of the operand).

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

The constructor Property

ویژگی سازنده یا constructor

The constructor property returns the constructor function for all JavaScript variables.

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

Example

"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]}

You can check the constructor property to find out if an object is an Array (contains the word "Array"):

شما می توانید از ویژگی Constructor برای بررسی اینکه آیا یک شی یک آرایه نیز هست استفاده کنید . ( شامل کلمه "Array" می شود):

Example

function isArray(myArray) {

  return myArray.constructor.toString().indexOf("Array") > -1;

}

Or even simpler, you can check if the object is an Array function:

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

Example

function isArray(myArray) {

  return myArray.constructor === Array;

}

You can check the constructor property to find out if an object is a Date (contains the word "Date"):

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

Example

function isDate(myDate) {

  return myDate.constructor.toString().indexOf("Date") > -1;

}

Or even simpler, you can check if the object is a Date function:

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

Example

function isDate(myDate) {

  return myDate.constructor === Date;

}

JavaScript Type Conversion

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

JavaScript variables can be converted to a new variable and another data type:

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

·  By the use of a JavaScript function

با استفاده از یک تابع در جاوا اسکریپت

·  Automatically by JavaScript itself

به صورت خودکار توسط خود جاوا اسکریپت

Converting Numbers to Strings

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

The global method String() can convert numbers to strings.

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

It can be used on any type of numbers, literals, variables, or expressions:

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

Example

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

The Number method toString() does the same.

متد toString از شی Number مشابه متد ToString کلی یا Global است.

Example

x.toString()

(123).toString()

(100 + 23).toString()

In the chapter Number Methods, you will find more methods that can be used to convert numbers to strings:

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

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

Converting Booleans to Strings

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

The global method String() can convert booleans to strings.

متد کلی یا Global ، String() می تواند مقادیر بولین را به رشته های متنی تبدیل کند.

String(false)      // returns "false"

String(true)       // returns "true"

The Boolean method toString() does the same.

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

false.toString()   // returns "false"

true.toString()    // returns "true"

Converting Dates to Strings

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

The global method String() can convert dates to strings.

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

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

The Date method toString() does the same.

متد ToString شی Date عمل مشابهی را انجام می دهد.

Example

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

In the chapter Date Methods, you will find more methods that can be used to convert dates to strings:

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

متد توضیحات
getDate() شماره روز را به صورت یک عدد دریافت می کند . (31-1)
getDay() شماره روز هفته را دریافت می کند .(6-0)
getFullYear() شماره چهاررقمی سال را دریافت می کند.(yyyy)
getHours() شماره ساعت را دریافت می کند. (23-0)
getMilliseconds() شماره میلی ثانیه را دریافت می کند .(999-0)
getMinutes() شماره دقیقه را دریافت می کند .(59-0)
getMonth() شماره ماه را دریافت می کند .(11-0)
getSeconds() شماره ثانیه را دریافت می کند . (59-0)
getTime() زمان را به صورت میلی ثانیه ( از یک ژانویه 1970) دریافت می کند.

Converting Strings to Numbers

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

The global method Number() can convert strings to numbers.

متد کلی یا Global ، Number() می تواند رشته های متنی را به اعداد تبدیل کند.

Strings containing numbers (like "3.14") convert to numbers (like 3.14).

رشته های متنی ای که شامل اعداد هستند (مانند "3.14") به اعداد تبدیل می شوند (همانند 3.14) .

Empty strings convert to 0.

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

Anything else converts to NaN (Not a Number).

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

Number("3.14")    // returns 3.14

Number(" ")       // returns 0

Number("")       // returns 0

Number("99 88")   // returns NaN

in the chapter Number Methods, you will find more methods that can be used to convert strings to numbers:

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

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

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

Example

var y = "5";      // y is a string

var x = + y;     // x is a number

If the variable cannot be converted, it will still become a number, but with the value NaN (Not a Number):

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

Example

var y = "John";   // y is a string

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

Converting Booleans to Numbers

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

The global method Number() can also convert booleans to numbers.

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

Number(false)     // returns 0

Number(true)      // returns 1

Converting Dates to Numbers

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

The global method Number() can be used to convert dates to numbers.

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

d = new Date();

Number(d)          // returns 1404568027739

The date method getTime() does the same.

متد GetTime  از شی Date کار یکسانی را انجام می دهد.

d = new Date();

d.getTime()        // returns 1404568027739

Automatic Type Conversion

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

When JavaScript tries to operate on a "wrong" data type, it will try to convert the value to a "right" type.

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

The result is not always what you expect:

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

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

Automatic String Conversion

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

JavaScript automatically calls the variable's toString() function when you try to "output" an object or a variable:

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

document.getElementById("demo").innerHTML = myVar;


// 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"

Numbers and booleans are also converted, but this is not very visible:

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

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

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

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

JavaScript Type Conversion Table

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

This table shows the result of converting different JavaScript values to Number, String, and Boolean:

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

مقدار اصلی تبدیل شده به عدد تبدیل شده به رشته متنی تبدیل شده به بولین
False 0 "false" False
True 1 "true" True
0 0 "0" False
1 1 "1" True
"0" 0 "0" True
"000" 0 "000" True
"1" 1 "1" True
NaN NaN "NaN" False
Infinity Infinity "Infinity" True
-Infinity -Infinity "-Infinity" True
"" 0 "" False
"20" 20 "20" True
"twenty" NaN "twenty" True
[ ] 0 "" true
[20] 20 "20" true
[10,20] NaN "10,20" True
["twenty"] NaN "twenty" True
["ten","twenty"] NaN "ten,twenty" True
function(){} NaN "function(){}" True
{ } NaN "[object Object]" True
Null 0 "null" False
Undefined NaN "undefined" false

Values in quotes indicate string values.

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

Red values indicate values (some) programmers might not expect.

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