به نام خدا با عرض سلام و وقت بخیر خدمت دوستان گرامی در راستای آموزش مقدماتی جاوا اسکریپت این جلسه به مبحث تبدیل نوع داده در جاوا اسکریپت خواهیم پرداخت باهما همراه باشید.درجاوا اسکریپ ما دو نوع تبدیل داده داریم تبدیل داده خودکار و تبدیل داده به صورتی دستی.
تبدیل نوع داده خودکار
اولین نوع تبدیل داده در جاوا اسکریپت تبدیل خودکار می باشد.که اغلب اوقات جاوا اسکریپت به طور خودکار مقادیر را از یک نوع داده به نوع دیگری تبدیل می کند که در عبارات استفاده می شود. به عنوان مثال، در عملیات ریاضی مقادیر به طور خودکار به اعداد تبدیل می شوند. با این حال، باز هم نتیجه نهایی همیشه آن چیزی نیست که انتظار داشتیم:
alert("3" - 2); // Outputs: 1 alert("3" + 2); // Outputs: "32" (because + is also concatenation operator) alert(3 + "2"); // Outputs: "32" alert("3" * "2"); // Outputs: 6 alert("10" / "2"); // Outputs: 5 alert(1 + true); // Outputs: 2 (because true is converted to 1) alert(1 + false); // Outputs: 1 (because false is converted to 0) alert(1 + undefined); // Outputs: NaN alert(3 + null); // Outputs: 3 (because null is converted to 0) alert("3" + null); // Outputs: "3null" alert(true + null); // Outputs: 1 alert(true + undefined); // Outputs: NaN
بعضی از مواقع ما نیاز داریم که به صورت دستی یک مقدار را از یک نوع داده به نوع دیگر تبدیل کنیم.که جاوا اسکریپت روش های متعددی را برای انجام چنین عملیاتی جهت تبدیل نوع داده ارائه میدهد.
تبدیل نوع داده به عدد
تبدیل عددی معمولاً زمانی مورد نیاز است که ما مقدار را از یک منبع مبتنی بر رشته مانند ورودی هایی که از نوع متن میباشند را می خوانیم، اما انتظار داریم یک عدد وارد شود، یا می خواهیم آن را به عنوان یک عدد در نظر بگیریم.
در چنین موقعیت هایی ما میتوانیم برای تبدیل رشته به عدد از یک متد سراسری به نام ()
Number استفاده نماییم.
به عنوان مثال:
var str = "123"; alert(typeof str); // Outputs: string var num = Number(str); // Becomes a number 123 alert(typeof num); // Outputs: number
اگر رشته ورودی ما یک عدد نامعتبر باشد.نتیجه حاصل NaN
خواهد بود.رشته های خالی عدد صفر را برا ما برمیگردانند.
Number("10.5") // returns 10.5 Number(true) // returns 1 Number(false) // returns 0 Number(null) // returns 0 Number(" 123 ") // returns 123 Number(" ") // returns 0 Number("") // returns 0 Number("123e-1") // returns 12.3 Number("0xFF") // returns 255 (hexadecimal representation) Number("undefined") // returns NaN Number("null") // returns NaN Number("Hello World!") // returns NaN
تبدیل نوع داده به رشته
به طور مشابه، می توانیم از متد ()
String برای تبدیل یک مقدار به رشته استفاده کنیم.
مثال زیر به ما نشان می دهد که چگونه یک مقدار بولی را به رشته تبدیل کنیم.
var bool = true; alert(typeof bool); // Outputs: boolean var str = String(bool); // Becomes a string "true" alert(typeof str); // Outputs: string
متد ()
Stringرا می توان روی هر نوع داده اعم از اعداد، متغیرها یا عبارت ها استفاده کرد:
String(10.5) // returns "10.5" String(123) // returns "123" String(100 + 23) // returns "123" String(true) // returns "true" String(false) // returns "false" String(123e-1) // returns "12.3" String(0xFF) // returns "255" String(undefined) // returns "undefined" String(null) // returns "null"
یک روش دیگر برای تبدیل اعداد به رشته، استفاده از متد()
toString می باشد:
var num = 123; alert(typeof num); // Outputs: number var str = num.toString(); // Becomes a string "123" alert(typeof str); // Outputs: string
Converting Values to Boolean
یکی دیگر از تبدیل نوع داده در جاوا اسکریپت تبدیل مقادیر به بولین می باشد.که برای این کار از متد ()
Boolean برای تبدیل هرنوع داده ممکن به یک مقدار بولی استفاده میکنیم.
مقادیری که به طور شهودی خالی هستند.مثل 0
, null
, false
, undefined
, NaN
و یا یک رشته خالی (""
) ،در این نوع تبدیل همگی false
هستند.وبقیه مقادیر مقدار true
را برمیگردانند.به عنوان مثال:
Boolean(0) // returns false Boolean(null) // returns false Boolean(false) // returns false Boolean(undefined) // returns false Boolean(NaN) // returns false Boolean("") // returns false Boolean("0") // returns true Boolean(1) // returns true Boolean(true) // returns true Boolean("false") // returns true Boolean("Hello World!") // returns true Boolean(" ") // returns true
اگر به مثال های بالا دقت کنیم میبینیم که متد ()
Boolean برای مقادیر رشته ایه صفر و “false” مقدار true را برای ما برگردانده در حالی که برای خود صفر و مقدار false نتیجه کار false شده است.
نکته:توجه: در برخی از زبان های برنامه نویسی (مثلا PHP) رشته “0” به عنوان false در نظر گرفته می شود.اما در جاوا اسکریپت یک رشته غیر خالی همیشه true است.
Object to Primitive Conversions
تمام تبدیلهایی که تاکنون دیدهایم بر روی داده های اولیه(انواع داده ای که می توانند تنها یک مقدار را در یک زمان نگه دارند) انجام میشوند.که برای داده های پیچیده مانند ابجکت ها چه اتفاقی می افتد؟
جاوا اسکریپت به طور خودکار تبدیل شی به رشته را انجام می دهد زمانی که ما سعی می کنیم یک شی مانند document.write(obj) و alert(obj) را چاپ کنیم. هنگامی که ما سعی می کنیم چیزی به اشیا اضافه یا از ان چیزی کم کنیم یا توابع ریاضی را اعمال کنیم، به عنوان مثال، اضافه کردن یا تفریقابجکت تاریخ، تبدیل شی به عدد به طور خودکار انجام می شود.به عنوان مثال:
var date1 = new Date(2018, 5, 24); alert(date1); // Display date string like: Sun Jun 24 2018 00:00:00 var date2 = new Date(2025, 8, 15); var time = date2 - date1; alert(time) // Display time in milliseconds: 228096000000
ما همچنین می توانیم تبدیل شی به رشته را به صورت دستی با استفاده از متد ()
toString انجام دهیم که نمایش رشته ای از شی را برمی گرداند، علاوه بر این، می توانیم از متد ()
valueOf روی برخی از اشیا مانند Date برای انجام تبدیل شی به عدد استفاده کنیم.به عنوان مثال:
var arr = [1, 2, 3]; arr.toString(); // returns "1,2,3" var d = new Date(2018, 5, 24); d.toDateString(); // returns date like Sun Jun 24 2018 00:00:00 d.valueOf(); // returns 1529778600000
توجه:همه اشیا (از جمله آرایه ها و توابع) درتبدیل به بولین true هستند.
Type Conversions Using Operators
برخی از عملگرهای جاوا اسکریپت، مانند عملگرهای +
و -
نیز می توانند برای انجام تبدیل نوع استفاده شوند،به عنوان مثال:
var x = "10"; // x is a string var y = +x; alert(typeof(y)); // Outputs: number alert(y); // Outputs: 10 var x = 10; // x is a number var y = x + ""; alert(typeof(y)); // Outputs: string alert(y); // Outputs: 10 var x = "15"; // x is a string var y = x - 0; alert(typeof(y)); // Outputs: number alert(y); // Outputs: 15 var x = "123"; alert(typeof(!!x)); // Outputs: boolean alert(!!x); // Outputs: true var x = "Hello World!"; var y = +x; alert(typeof(y));// Outputs: number alert(y); // Outputs: NaN
به پایان این جلسه رسیدیم امیدواریم اصول تبدیل نوع داده را درک کرده باشید.
سایر مقالات
اشیاء(Objects) در جاوا اسکریپت
دیدگاهتان را بنویسید