تبدیل نوع (Type Coercion)

تبدیل نوع، تبدیل خودکار یا ضمنی مقادیر از یک نوع داده به نوع دیگر (مانند تبدیل رشته‌ها به اعداد) است. تبدیل نوع (Type Conversion) مشابه تبدیل نوع خودکار است، زیرا هر دو مقادیر را از یک نوع داده به نوع دیگر تبدیل می‌کنند، اما یک تفاوت کلیدی وجود دارد: تبدیل نوع خودکار ضمنی است، در حالی که تبدیل نوع می‌تواند ضمنی یا صریح باشد.

مثال‌ها:

const value1 = &quot5&quot
const value2 = 9;
let sum = value1 + value2;

console.log(sum);

در مثال بالا، جاوا اسکریپت عدد 9 را به یک رشته تبدیل کرده است و سپس دو مقدار را با هم ترکیب کرده است، که منجر به رشته 59 می‌شود. جاوا اسکریپت می‌توانست 5 را به یک عدد تبدیل کند و مجموع 14 را برگرداند، اما این کار را نکرد. برای بازگرداندن یک نتیجه عددی، باید 5 را به طور صریح با استفاده از متد Number() به یک عدد تبدیل کنید:

JavaScript

sum = Number(value1) + value2;

خلاصه:

  • تبدیل نوع خودکار: جاوا اسکریپت به طور خودکار مقادیر را بین انواع داده‌ای مختلف تبدیل می‌کند.
  • تبدیل نوع صریح: شما می‌توانید به طور صریح مقادیر را با استفاده از متدهایی مانند Number, String, و Boolean تبدیل کنید.
  • مراقب تبدیل نوع غیرمنتظره باشید: گاهی اوقات، جاوا اسکریپت ممکن است مقادیر را به شیوه‌ای تبدیل کند که شما انتظار ندارید. برای جلوگیری از مشکلات، بهتر است تبدیل نوع را به صورت صریح انجام دهید.



تبدیل نوع (Type Conversion)

تبدیل نوع (یا تایپ کستینگ typecasting) به معنای انتقال داده‌ها از یک نوع داده به نوع دیگر است.

تبدیل نوع ضمنی زمانی اتفاق می‌افتد که کامپایلر (برای زبان‌های کامپایل شده) یا محیط اجرایی (برای زبان‌های اسکریپتی مانند جاوا اسکریپت) به طور خودکار انواع داده‌ها را تبدیل می‌کنند. همچنین، کد منبع می‌تواند به طور صریح درخواست انجام یک تبدیل را بدهد.

مثال:در عبارت زیر:

"foo" + 1

عدد 1 به طور ضمنی به یک رشته تبدیل می‌شود و عبارت "foo1" را برمی‌گرداند. با دستور زیر:

Number("0x11")

رشته "0x11" به طور صریح به عدد 17 تبدیل می‌شود.

https://vrgl.ir/IG4fZ

https://vrgl.ir/IG4fZ

خلاصه:

  • تبدیل نوع ضمنی: کامپایلر یا محیط اجرایی به طور خودکار تبدیل را انجام می‌دهند.
  • تبدیل نوع صریح: برنامه‌نویس به طور مستقیم تبدیل را درخواست می‌کند.
  • مثال‌ها: تبدیل اعداد به رشته‌ها و تبدیل رشته‌ها به اعداد.