تبدیل انواع داده ها در جاوا اسکریپت به چه صورت است ؟
تبدیل انواع داده ها در جاوا اسکریپت به چه صورت است ؟
تبدیل انواع داده ها در جاوا اسکریپت به چه صورت است ؟
یکی از ویژگی هاي برجسته هر زبان برنامه نویسی قابلیت تبدیل انواع در آن است. جاوا اسکریپت نیز از این قاعده مستثنی نبوده و روش هاي ساده اي براي تبدیل انواع فراهم آورده است. اکثر انواع موجود در جاوااسکریپت از متدهایی براي تبدیل به سایر انواع پشتیبانی کرده و توابعی سراسري براي تبدیل انواع به روش هاي پیچیده تر وجود دارد
یکی از جذابترین ویژگی هایی که جاوا اسکریپت در رابطه با انواع اصلی boolean string و numbers ، فراهم کرده است این است که آنها در اصل اشیاي کاذب هستند، به این معنی که داراي خاصیت ها و متدهاي مشترك و منحصر به فردي می باشند. به عنوان مثال براي بدست آوردن طول یک رشته می توان از خاصیت length استفاده نمود:
;var sColor = “blue”
alert (sColor.length) ; //outputs “4”
سه نوع داده string و number ، boolean متدي به نام tostring() براي تبدیل به رشته دارند. این متد براي متغیرهاي از نوع Boolean یکی از مقادیر رشته اي false و true را بسته به مقدار متغیر برمیگرداند:
; var bFound = false
alert(bFound.toString()); //outputs “false”
این متد براي متغیر هاي از نوع number رشته اي حاوي آن عدد را بر می گرداند:
; var iNum1 = 10
; var fNum2 = 10.0
alert(iNum1.toString()); //outputs “10”
alert(fNum2.toString()); //outputs “10”
تبدیل به عدد
جاوااسکریپت دو متد براي تبدیل انواع غیر عددي به عددي فراهم کرده است:
praseInt()
parseFloat()
این متد ها فقط بر روي رشته هاي حاوي عدد کار می کنند و بر روي بقیه انواع مقدارNaN را بر می گردانند. متد parseInt() از اولین کاراکتر رشته شروع می کند اگر عدد بود آن را بر می گرداند در غیر این صورت مقدار NaN را برمی گرداند. این روند تا آخرین کاراکتر ادامه پیدا میکند تا اینکه به کاراکتري غیر عددي برسد. به عنوان مثال این متد عبارت red 123 را به صورت 123 برمیگرداند.
var iNum1 = parseInt(“1234blue”); //returns 1234
var iNum3 = parseInt(“22.5”); //returns 22
var iNum4 = parseInt(“blue”); //returns NaN
متد parseFloat() نیز مثل parseInt() عمل کرده و از اولین کاراکتر شروع به جستجو می کند. البته در این متد اولین کاراکتر نقطه حساب نمی شود و آن را به همان صورت برمیگرداند اگر دو کاراکتر نقطه در رشته وجود داشته باشند دومین نقطه به عنوان کاراکتر بی ارزش شناخته می شود و عملیات تبدیل متوقف می شود. مثال ها:
var fNum1 = parseFloat(“1234blue”); //returns 1234.0
var fNum3 = parseFloat(“22.5”); //returns 22.5
var fNum4 = parseFloat(“22.34.5”); //returns 22.34
var fNum6 = parseFloat(“blue”); //returns NaN
استفاده از Type Casting براي تبدیل انواع
در جاوااسکریپت امکان استفاده از روشی موسوم به Type Casting براي تبدیل انواع وجود دارد. سه نوع type casting در جاوااسکریپت وجود دارد:
Boolean ()
Number ()
String ()
تابع Boolean() زمانی مقدار true را بر می گرداند که پارامتر دریافتی اش، رشته اي شامل حداقل یک کارکتر، یک عدد غیر از صفر و یا یک شی باشد. مقدار false را نیز زمانی بر می گرداند که پارامتر دریافتی اش رشته اي تهی، عدد صفر یا یکی از مقادیر undefined و null باشد:
var b1 = Boolean(“”); //false – empty string
var b2 = Boolean(“hi”); //true – non-empty string
var b3 = Boolean(100); //true – non-zero number
var b4 = Boolean(null); //false – null
var b5 = Boolean(0); //false – zero
var b6 = Boolean(new Object()); //true – object
تابع Number() کاري شبیه parseInt() و parseFloat() را انجام می دهد اما تفاوت هایی هم دارد.اگر به یاد داشته باشید متدهاي parseInt() و parseFloat() آرگومان دریافتی را فقط تا اولین کاراکتر بی ارزش بر می گرداندند. مثلا رشته ” 4.5.6 “ به 4.5 تبدیل خواهند کرد. اما کاربرد متد Number() براي این رشته مقدار NaN را برمی گرداند زیرا این رشته در کل، از نظر متد Number() امکان تبدیل به یک عدد را ندارد.
اگر رشته اي امکان تبدیل به یک عدد را داشته باشد متد Number() خود، براي استفاده از یکی از توابع parseInt() با parseFloat() تصمیم می گیرد. در مثال زیر حاصل اجراي تابع Number() براي انواع داده ها را نشان می دهد:
Number(false) 0
Number(true) 1
Number(undefined) NaN
Number(null) 0
Number(“5.5”) 5.5
Number(“56”) 56
Number(“5.6.7”) NaN
Number(new Object()) NaN
Number(100) 100
ساده ترین تابع هم String() است که همان چیزي را که می گیرد به عنوان رشته بر می گرداند: var s1 = String(null); // ”null”
منبع : انجمن علمی مهندسی فناوری اطلاعات دانشگاه پیام نور مرکز اران و بید گل
برای اموزش های ویدیویی زبان جاوا اسکریپت به بستر ویدیو های اموزشی بروید