تبدیل تایپ ها در جاوااسکریپت
بیشتر اوقات ، عملگرها و توابع به طور خودکار مقادیر داده شده به آنها را به نوع(type) مناسب تبدیل می کنند.
برای مثال تابع alert
هر مقداری که بهش بدیم تبدیلش میکنه به string
و بعد نشونش میده، عملگر های ریاضی مقدار ها رو به عدد تبدیل میکنن
همچنین توی بعضی موارد نیازه که به صورت دستی نوع یک مقدار رو عوض کنیم
تبدیل رشتهای (String Conversion)
تبدیل به string
زمانی اتفاق می افته که یک مقدار رو به صورت رشتهای نیاز داشته باشیم
برای نمونه alert(value)
تبدیل به string
را برای نمایش، انجام میده
همینطور میتونیم با صدا زدن String(value)
تبدیل یک مقدار به string
رو انجام بدیم
let value = true;
alert(typeof value); // boolean
value = String(value); // now value is a string "true"
alert(typeof value); // string
تبدیل به string
معمولا واضحه false
به "false"
و null
به "null"
تبدیل میشه و برای بقیه مقادیر هم به همین ترتیب انجام میشه
تبدیل عددی (Numeric Conversion)
تبدیل به عدد توی فانکشنها و عبارات ریاضیاتی به طور خودکار انجام میشه
برای نمونه وقتی تقسیم /
روی مقادیر غیر عددی انجام میشه (اعداد از نوع رشته به نوع عددی تبدیل میشن):
alert( "6" / "2" ); // 3, strings are converted to numbers
برای این که بخوایم خودمون یه مقداری رو به عدد تبدیل کنیم میتونیم از Number(value) استفاده کنیم :
let str = "123";
alert(typeof str); // string
let num = Number(str); // becomes a number 123
alert(typeof num); // number
وقتی داریم یه سری مقدار ها رو از یه جایی مثل input
از کاربر میگیریم لازمه که به عدد تبدیلش کنیم
اگه رشتهای که وارد شده باشه یه عدد معتبر نباشه نتیجهی تبدیلش به عدد NaN
هست مثلا:
let age = Number("an arbitrary string instead of a number");
alert(age); // NaN, conversion failed
قواعد تبدیل به Number
مقدار | تبدیل میشه به ... |
---|---|
undefined |
NaN |
null |
0 |
true و false |
1 و 0 |
string |
فاصلههای خالی ابتدا و انتها حذف میشوند. اگر رشتهی باقی مانده خالی باشد نتیجه 0 خواهد بود. در غیر اینصورت عدد موجود در رشته کاراکترها خوانده خواهد شد. همینطور اگر خطایی رخ دهد نتیجه NaN خواهد بود. |
مثال:
alert( Number(" 123 ") ); // 123
alert( Number("123z") ); // NaN (error reading a number at "z")
alert( Number(true) ); // 1
alert( Number(false) ); // 0
توجه کنین که null
و undefined
اینجا متفاوت عمل میکنن Null
به 0
تبدیل میشه و undefined
به NaN
تبدیل میشه
تبدیل منطقی (Boolean Conversion)
تبدیل به boolean راحت ترین حالته
نتیجه یه عملگر های شرطی Boolean هست و همچنین میتونیم با استفاده از Boolean(value) یه مقدار رو تبدیل کنیم
قاعده تبدیل به Boolean
مقادیری که در ظاهر "خالی"
هستن، مثل 0
، string
خالی ، null
، undefined
و NaN
به false
تبدیل میشن، بقیه مقادیر به true
تبدیل میشن
برای مثال :
alert( Boolean(1) ); // true
alert( Boolean(0) ); // false
alert( Boolean("hello") ); // true
alert( Boolean("") ); // false
نکته
یک صفر رشتهای "0"
نتیجهاش میشه true
بعضی از زبان های برنامه نویسی مثل PHP
میاد "0"
رو به false
تبدیل میکنه اما توی جاوااسکریپت هر رشتهای که خالی نباشه با هر مقداری تبدیل میشه به true
alert( Boolean("0") ); // true
alert( Boolean(" ") ); // spaces, also true (any non-empty string is true)
خلاصه
سه تبدیل پرکاربردی که استفاده میشه، تبدیل رشتهای، عددی و منطقی هست
تبدیل به string
- وقتی که میخوایم خروجیای داشته باشیم اتفاق میوفته. از طریق String(value)
قابل انجامه
تبدیل به number
– در عملگرهای ریاضیاتی اتفاق میوفته. از طریق Number(value)
هم قابل انجامه
تبدیل به boolean
– در عملگرهای منطقی اتفاق میوفته. از طریق Boolean(value)
قابل انجامه