تبدیل نوع داده ها به یکدیگر یا type conversion مبحثی است که در قسمت شانزدهم آموزش جاوا اسکریپت در سایت کدپز آن را پی خواهیم گرفت. در ابتدای این قسمت مروری بر انواع داده ها در جاوا اسکریپت خواهیم داشت.
انواع داده در جاوا اسکریپت
در جاوا اسکریپت داده ها 5 نوع مختلف را میتوانند بگیرند:
- string
- number
- boolean
- object
- function
6 نوع شیء هم در جاوا اسکریپت مشاهده می شود:
- object
- date
- array
- string
- number
- boolean
و در نهایت 2 نوع داده نیز هستند که مقداری نمی توانند بپذیرند:
- null
- undefined
عملگر type of
شما می توانید با استفاده از عملگر type of به نوع یک متغیر جاوا اسکریپت پی ببرید. برای آشنایی با نحوه نوشتن و خروجی این عملگر به قطعه کد زیر توجه نمایید :
1 2 3 4 |
"type of false // Returns "boolean "typeof {name:'John', age:34} // Returns "object "typeof new Date() // Returns "object "type of [1,2,3,4] // Returns "object |
با دقت در کد بالا و خروجی آن متوجه می شویم که این عملگر نوع آرایه و تاریخ و شیء را شیء اعلام کرده و بطور دقیق نمی توان فهمید که آن شیء شامل کدام یک از این هاست!
ویژگی constructor
1 2 |
new Date().constructor // Returns function Date() {[native code]} false.constructor // Returns function Boolean() {[native code]} |
همانطور که خروجی کد های بالا را در مقابل آنها مشاهده می کنید هنگام استفاده از constructor دقیقا مشخص می کند که نوع شیء تاریخ ، آرایه یا شیء است.
تبدیل نوع داده ها به یکدیگر یا type conversion
متغیرها در جاوا اسکریپت از دو راه می توانند تبدیل به متغیرهایی با نوع دیگر شوند:
- با استفاده از توابع مربوط
- بصورت خودکار توسط جاوا اسکریپت
ابتدا تغییر نوع داده را با استفاده از توابع بررسی می کنیم.
تابع ()String
تابع ()String میتواند انواع number ، boolean و date را به رشته تبدیل کند. به مثال های زیر توجه کنید تا نحوه ی نوشتن این تابع و کاربرد آن در تبدیل هر یک از انواع گفته شده به نوع رشته را متوجه شوید:
1 2 3 |
String(123) // returns a string from a number literal 123 String(Date()) // returns "Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)" "String(false) // returns "false |
برای این کار توابع دیگری نیز وجود دارند که در زیر به چند مورد اشاره می کنیم اما تابع ()String تابع اصلی و پرکاربرد برای این کار می باشد.
تابع ()toString که برای هر سه مورد استفاده می شود.
توابعی که برای تبدیل عدد به رشته فقط استفاده می شوند:
() toExponential
() toFixed
()toPrecision
توابعی که فقط برای تبدیل تاریخ به رشته کاربرد دارند:
- ()getday
- ()getdate
- ()getfullyear
- ()gethours
- ()gettime
تبدیل رشته ، تاریخ و boolean به عدد
برای این کار می توانیم از تابع ()Number استفاده کنیم . این تابع به صورت زیر نوشته شده و مورد استفاده قرار می گیرد:
1 2 3 4 5 6 7 |
Number("3.14") // returns 3.14 Number("") // returns 0 Number("99 88") // returns NaN Number(false) // returns 0 Number(true) // returns 1 ;()d = new Date Number(d) // returns 1404568027739 |
نکته: همانطور که مشاهده می کنید رشته های خالی به 0 و بقیه ی موارد به nan تبدیل می شوند.
تبدیل نوع داده بصورت خودکار توسط جاوا اسکریپت
اگر جاوا اسکریپت در حال اجرای عملیات روی نوع داده ای باشد که اشتباه به نظر می رسد، آن را به نوع داده ای تبدیل می کند که صحیح باشد اما نتیجه همیشه آنطور که شما میخواهید نیست. برای مثال هنگام اجرای عملیات جمع 5 و null چون 5 عدد است null را هم به عدد(0) تبدیل کرده و مقدار 5 را بر میگرداند. اما اگر عدد 5 را داخل ” ” قرار دهیم هر دو به رشته تبدیل شده و مقدار “5null” را برمی گرداند.
این قسمت از آموزش جاوا اسکریپت هم به پایان رسید. امیدوارم برای شما مفید بوده باشه.
برای انجام تمرین و دیدن مثال هایی بیشتر با این موضوع به w3schools مراجعه کنید.
موفق باشید.