تبدیل نوع

بیشتر اوقات ، عملگر ها و توابع به طور خودکار مقادیری که به آنها داده شده است رو  به نوع درست تبدیل میکنند.

به عنوان مثال، alert به طور خودکار هر مقدار را به یک رشته تبدیل می کند تا اون رو نشون بده.

عملگر های ریاضی مقادیر رو به اعداد تبدیل میکنند.

همچنین مورد هایی هم وجود دارد که ما نیاز داریم به صراحت یک مقدار رو به نوعی که انتظار میرود تبدیل کنیم.


هنوز در مورد objects ها هیچ صحبتی نکردیم

در این قسمت ما object ها رو پوشش نمیدیم.

در عوض ابتدا پایه ها رو مطالعه میکنیم و بعدا در مورد object ها صحبت میکنیم.

اینکه با تبدیل object ها چگونه کار میکنیم رو در قسمت تبدیل شی به اولیه میتونید ببینید.


تبدیل به رشته ToString در جاوا اسکریپت

زمانی که ما نیاز داریم یک مقدار رو به رشته تبدیل کنیم اتفاق می افته.

برای مثال : alert(value) مقدار ورودی رو نمایش میده.

همچنین ما میتونیم با فراخوانی تابع String(value) مقدار ورودی رو به رشته تبدیل کنیم.

تبدیل رشته اغلب واضح هست .

مقدار false میشود “false”

مقدار null میشود “null”

 

تبدیل به اعداد ToNumber در جاوا اسکریپت

تبدیل اعداد در محاسبات و توابع ریاضی نیاز هست.

برای مثال شما میخواهید با /  روی اعداد تقسیم رو اعمال کنید.

ما با استفاده از Number(value) میتونیم صراحتا value رو به عدد تبدیل کنیم.

تبدیل صریح معمولا وقتی که ما یه متنی رو از یک منبع مبتنی بر string مانند متن که انتظار داریم عددی باشد رو نیاز داریم تبدیل کنیم استفاده میشه.

اگر string معتبر نباشه نتیجه تبدیل مقدار NaN هست:

قوانین تبدیل عددی در جاوا اسکریپت:

مقدار نتیجه
undefined NaN
null ۰
true and false ۱ and ۰
string فاصله اضافی اول و آخر string حذف میشه اگر خالی باشه مقدار ۰ رو برمیگیردونه در غیر اینصورت اگر اعداد باشد به اعداد تبدیل میشه . اما اگه به ارور بده مقدار NaN رو برمیگردونه

مثال ها:

دقت کنید که مقدار null و undefined رفتار متفاوتی دارند.

null مقدار ۰ رو به ما میده درحالی که undefined مقدار NaN رو.


اضافه کردن رشته با +

اکثر عملگرهای ریاضی مقادیر رو به عدد تبدیل میکنند. در عملگر + استثنا قابل ملاحضه ای وجود دارد.

در صورتی که اگر یکی از مقادیر از نوع رشته باشند مقدار دیگری را نیز به رشته تبدیل میکند.

سپس دو مقدار رو به هم میچسپاند:

این زمانی رخ میدهد که حد اقل یکی از مقادیر از نوع رشته باشند.

در غیر اینصورت مقادیر رو به به عدد تبدیل میکند.


تبدیل به boolean در جاوا اسکریپت

ساده ترین نوع تبدیل تبدیل به boolean هست .

در عمگر های منطقی اتفاق میافته اما اگه بخواهیم به صورت دستی اونو فراخوانی کنیم از تابع Boolean استفاده میکنیم.

قانون تبدیل به boolean :

  • مقادیری که به صورت بصری خالی هستند ، مانند ۰ ، یک رشته خالی ، null ، undefined ،NaN  مقدار false را به ما میدهد.
  • برای مقادیر دیگر مقدار true را برمیگرداند.

برای مثال :


توجه داشته باشید که یک رشته “۰” در تبدیل به boolean مقدار true را برمیگرداند.

در بعضی زبان ها مانند php  با “۰”  به عنوان false رفتار میشود.

اما در جاوا اسکریپت برای رشته غیر خالی مقدار true را برمیگرداند:


 

خلاصه تبدیل در جاوا اسکریپت

سه نوع تبدیل پر کاربرد در جاوا اسکریپت toString ، toNumber ، toBoolean  هست.

ToString :

وقتی که ما چیزی رو تولید میکنیم رخ میدهد.

میتونه با دستور String(value) اجراش کنیم.

تبدیل به رشته معمولاً برای مقادیر اولیه آشکار است.

 

ToNumber:

برای عملگر های ریاضی نیاز هست.

با دستور Number(value) میتونیم تبدیل رو انجام بدیم.

این تبدیل از قوانین زیر پیروی میکند:

مقدار خروجی
undefined NaN
null ۰
true / false ۱ / ۰
string space های اول و آخر رو اگه وجود داشته باشه حذف میکنه درصورتی که خالی باشد عدد ۰ رو برمیگردونه در صورتی که رشته عدد باشد عدد رو تبدیل میکنه در غیر اینصورت NaN رو بهمون میده

ToBoolean :

برای عملگر های منطقی استفاده میشه.

برای فراخوانی Boolean(value)رو اجرا میکنیم.

تبدیل با خوانین زیر انجام میشود:

مقادیر خروجی…
۰nullundefinedNaN"" false
هر مقداری true

اکثر این قوانین قابل فهم و حفظ هستند.

 

اما یک استثنا قابل توجه وجود داره که اغلا افراد رو به اشتباه دچار میکنه:

  • در تبدیل به اعداد undefined میشود NaN  نه عدد صفر
  • “۰” و ” ”  در تبدیل به boolean هم مقدار true را برمیگردانند.

ما در اینجا هیچ صحبتی در مورد object ها نکردیم.

در قسمت تبدیل شی به اولیه که بعد از یادگیری مفاهیم پایه ای جاوا اسکریپت به object ها اختصاص داده شده است توتیح خواهیم داد.

 


تمرین این قسمت:

باتوجه به چیزایی که در موردشون صحبت کردیم میتونیم بگیم نتیجه عبارات زیر چی هست ؟

  • “” + ۱ + ۰
  • “” – ۱ + ۰
  • true + false
  • ۶ / “۳”
  • “۲” * “۳”
  • ۴ + ۵ + “px”
  • “$” + ۴ + ۵
  • “۴” – ۲
  • “۴px” – 2
  • ۷ / ۰
  • ” -۹ ” + ۵
  • ” -۹ ” – ۵
  • null + 1
  • undefined + 1

 

منبع : javascript.info

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *