محمد مسعودی
محمد مسعودی
خواندن ۳ دقیقه·۴ سال پیش

آموزش جاوااسکریپت - تبدیل تایپ‌ها در جاوااسکریپت

بیشتر اوقات ، عملگرها و توابع به طور خودکار مقادیر داده شده به آنها را به نوع(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 &quottrue&quot alert(typeof value); // string

تبدیل به string معمولا واضحه false به "false" و null به "null" تبدیل میشه و برای بقیه مقادیر هم به همین ترتیب انجام میشه


تبدیل عددی (Numeric Conversion)

تبدیل به عدد توی فانکشن‌ها و عبارات ریاضیاتی به طور خودکار انجام می‌شه

برای نمونه وقتی تقسیم / روی مقادیر غیر عددی انجام میشه (اعداد از نوع رشته به نوع عددی تبدیل میشن):

alert( &quot6&quot / &quot2&quot ); // 3, strings are converted to numbers


برای این که بخوایم خودمون یه مقداری رو به عدد تبدیل کنیم میتونیم از Number(value) استفاده کنیم :


let str = &quot123&quot alert(typeof str); // string let num = Number(str); // becomes a number 123 alert(typeof num); // number

وقتی داریم یه سری مقدار ها رو از یه جایی مثل input از کاربر میگیریم لازمه که به عدد تبدیلش کنیم

اگه رشته‌ای که وارد شده باشه یه عدد معتبر نباشه نتیجه‌ی تبدیلش به عدد NaN هست مثلا:

let age = Number(&quotan arbitrary string instead of a number&quot); alert(age); // NaN, conversion failed

قواعد تبدیل به Number :

مقدار undefined به NaN تبدیل میشه

مقدار null به 0 تبدیل میشه

مقدار true , false به 0 , 1 تبدیل میشه

مقدار string : فاصله‌های خالی ابتدا و انتها حذف می‌شوند. اگر رشته‌ی باقی مانده خالی باشد نتیجه 0 خواهد بود. در غیر اینصورت عدد موجود در رشته کاراکترها خوانده خواهد شد. همینطور اگر خطایی رخ دهد نتیجه NaN خواهد بود

مثال:


alert( Number(&quot 123 &quot) ); // 123 alert( Number(&quot123z&quot) ); // NaN (error reading a number at &quotz&quot) 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(&quothello&quot) ); // true alert( Boolean(&quot&quot) ); // false


×× نکته ××

یک صفر رشته‌ای "0" نتیجه‌اش میشه true

بعضی از زبان های برنامه نویسی مثل PHP میاد "0" رو به false تبدیل میکنه اما توی جاوااسکریپت هر رشته‌ای که خالی نباشه با هر مقداری تبدیل میشه به true

alert( Boolean(&quot0&quot) ); // true alert( Boolean(&quot &quot) ); // spaces, also true (any non-empty string is true)


خلاصه

سه تبدیل پرکاربردی که استفاده میشه، تبدیل رشته‌ای، عددی و منطقی هست

تبدیل به string - وقتی که می‌خوایم خروجی‌ای داشته باشیم اتفاق میوفته. از طریق String(value) قابل انجامه

تبدیل به number– در عملگرهای ریاضیاتی اتفاق میوفته. از طریق Number(value) هم قابل انجامه

تبدیل به boolean – در عملگرهای منطقی اتفاق میوفته. از طریق Boolean(value) قابل انجامه


پست قبلی(آموزش جاوااسکریپت - تعامل با کاربر)

https://vrgl.ir/y5yFN


اگر توی این مقاله مشکلی بود یا خواستین توی این پروژه مشارکت کنین این لینک گیت‌هابش هست.

منبع

گیت‌هاب

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