برنامه نویسی

📡 Casting را در جاوا اسکریپت تایپ کنید

Typecasting در جاوا اسکریپت تبدیل یک نوع داده به نوع داده دیگر است، به عنوان مثال، یک عدد به یک رشته. Typecasting اغلب به عنوان تبدیل نوع نیز شناخته می شود.

فهرست مطالب

نوع داده چیست؟

جاوا اسکریپت دارای 8 نوع داده اصلی است:

  • رشته
  • عدد
  • بولی
  • خالی
  • تعریف نشده
  • بیگینت
  • سمبل
  • هدف – شی

شی را می توان به انواع داده های بیشتری تقسیم کرد یا به عبارت دقیق تر، انواع داده هایی وجود دارد که آنها نیز شی هستند:

جاوا اسکریپت یک زبان پویا با انواع داده های پویا است زیرا انواع متغیرها در لحظه ای که مقدار را به آنها اختصاص می دهند، تعریف می شوند. اگر اطلاعات قبلی ندارید، پست من را بررسی کنید تا در مورد انواع داده بیشتر بدانید.
دو نوع تایپ سازی وجود دارد – تایپ سازی ضمنی و تایپ سازی آشکار.

تایپ سازی ضمنی

تبدیل نوع ضمنی به طور خودکار توسط مفسر یا کامپایلر زمانی صورت می گیرد که نیاز داخلی برای آن وجود داشته باشد.
برای درک دقیق منظورم، اجازه دهید چندین مثال را مرور کنیم.

تایپ‌سازی ضمنی رشته‌ها با + به رشته‌ها

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

تایپ‌سازی ضمنی رشته‌های عددی به اعداد

وقتی یک مقدار عددی در یک رشته دارید اما یک عملیات ریاضی (مخصوصاً تفریق، ضرب یا تقسیم) را با مقدار عددی دیگری انجام می دهید، رشته عددی به عدد تبدیل می شود. توجه داشته باشید که این کار با یک مثبت کار نمی کند.

تایپ سازی ضمنی

همچنین، هر دو مقدار می توانند یک رشته با یک مقدار عددی نیز باشند و در نتیجه همچنان یک عدد دریافت خواهید کرد.

تایپ سازی ضمنی

اگر به جای یک عدد یا رشته عددی، انواع دیگری با چنین عملیات ریاضی وجود دارد، رفتارهای دیگری نیز وجود دارد که به زودی آنها را بررسی خواهیم کرد.

تایپ سازی ضمنی بولین ها به اعداد

اگر از بولی در عملیات ریاضی با اعداد استفاده می کنید، true همیشه به 1 تبدیل می شود و false همیشه به 0 تبدیل می شود. توجه داشته باشید که اگر یک رشته عددی (عددی در رشته) باشد، plus، بولی را به یک رشته تبدیل می کند اما هر چیز دیگری. رشته عددی را به عدد تبدیل می کند.

عدد + بولی

تایپ سازی ضمنی

رشته عددی + بولی

تایپ سازی ضمنی

یک عدد – بولی

تایپ سازی ضمنی

رشته عددی – بولی

تایپ سازی ضمنی

عدد/بولی

تایپ سازی ضمنی

رشته عددی/بولی

تایپ سازی ضمنی

عدد * بولی

تایپ سازی ضمنی

رشته عددی * بولی

تایپ سازی ضمنی

تایپ‌سازی ضمنی از تهی به اعداد

هنگامی که با اعداد استفاده می شود، تهی به 0 تبدیل می شود، چه مثبت، منفی، تقسیم یا ضرب.

تایپ سازی ضمنی

تایپ سازی ضمنی تعریف نشده

انجام عملیات با تعریف نشده همیشه NaN را برمی‌گرداند، چه بولی، چه عددی یا تهی. اگرچه یک رشته مثبت تعریف نشده آن را به رشته ای تبدیل می کند که قبلاً یاد گرفتیم.

با اعداد تعریف نشده است

تایپ سازی ضمنی

تعریف نشده با null

تایپ سازی ضمنی

با بولی تعریف نشده است

تایپ سازی ضمنی

تایپ سازی صریح

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

تایپ صریح به عدد

برای تبدیل هر چیزی به عدد می توانید از متد Number() استفاده کنید. با این حال، نتیجه بسته به نوع داده متفاوت خواهد بود.

رشته به یک عدد

تایپ سازی صریح

رشته عددی به عدد

تایپ سازی صریح

بولی (درست) به یک عدد

تایپ سازی صریح

بولی (نادرست) به عدد

تایپ سازی صریح

تهی به یک عدد

تایپ سازی صریح

تعریف نشده به یک عدد

تایپ سازی صریح

رشته خالی به یک عدد

تایپ سازی صریح

تاریخ به یک عدد

تایپ سازی صریح

توجه داشته باشید که تاریخ به خودی خود یک شی است نه یک عدد و خروجی برای شما متفاوت خواهد بود زیرا Date() جدید میلی ثانیه های سپری شده از آغاز سال 1970 در UTC را برمی گرداند، که امیدواریم از زمانی که این کد را نوشتم تغییر کرده است.

تایپ صریح به رشته

برای تبدیل هر چیزی به رشته می توانید از متد String() یا toString() استفاده کنید. بیشتر ما از toString() استفاده می کنیم اما ممکن است در برخی شرایط نتیجه متفاوتی داشته باشد.

عدد به یک رشته

تایپ سازی صریح

تهی به یک رشته

تایپ سازی صریح

به یک رشته تعریف نشده است

تایپ سازی صریح

NaN به یک رشته

تایپ سازی صریح

بولی (درست) به یک رشته

تایپ سازی صریح

بولی (نادرست) به یک رشته

تایپ سازی صریح

تاریخ به یک عدد

تایپ سازی صریح

تایپ سازی صریح به بولی

برای تبدیل یک نوع داده به یک بولی می توانیم از متد Boolean() استفاده کنیم. این تبدیل را می توان به دو بخش تقسیم کرد تا راحت تر به خاطر بسپارید. ابتدا مواردی را که true برمی‌گردانند گروه‌بندی می‌کنیم و سپس آن‌هایی را که true برمی‌گردانند، به همین سادگی گروه‌بندی می‌کنیم.

تایپ صریح به نادرست

انواع داده هایی که با استفاده از متد Boolean() به false می دهند تعریف نشده، null، 0، NaN، ” (رشته خالی بدون فاصله) هستند.

تایپ سازی صریح

تایپ صریح به درست

رشته‌ها، اعداد و رشته‌هایی که فاصله دارند اگر از متد Boolean() استفاده کنیم، o true می‌کنند.

تایپ سازی صریح

تبدیل آرایه ها به اشیا

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

اپراتور گسترش

عملگر spread یک راه آسان برای پخش یک آرایه در داخل شی است.

تبدیل آرایه ها به اشیا

یک حلقه برای

راه دیگر برای ایجاد یک شی از یک آرایه این است که از طریق یک آرایه حلقه بزنید و یک کلید با شاخص آیتم آرایه ایجاد کنید و یک آیتم آرایه را در یک موقعیت مرتبط به مقدار اضافه کنید.

تبدیل آرایه ها به اشیا

یک حلقه forEach

یک روش بسیار مشابه، حلقه زدن از طریق یک آرایه از طریق حلقه forEach خواهد بود.

تبدیل آرایه ها به اشیا

با Object.assign()

در مرحله بعد، می‌توانید از روش داخلی Object.assign() برای ادغام یک آرایه با یک شی استفاده کنید

تبدیل آرایه ها به اشیا

با Object.fromEntries()

در نهایت، می توانید از متد شی دیگری () Object.fromEntries استفاده کنید. با این حال، فقط در صورتی کار می کند که یک آرایه دو بعدی داشته باشید، در غیر این صورت، خطا ایجاد می کند.

تبدیل آرایه ها به اشیا

تبدیل اشیا به آرایه

برای تبدیل اشیا به آرایه چندین روش داخلی وجود دارد که می توانیم از آنها استفاده کنیم. بیایید آنها را بررسی کنیم.

با Object.entries()

ما از روش مشابهی برای تبدیل آرایه ها به اشیا استفاده کردیم و با استفاده از ورودی ها می توانیم همین کار را انجام دهیم. یک آرایه 2 بعدی با 3 آرایه از هر جفت کلید-مقدار را برمی گرداند.

تبدیل اشیا به آرایه

با Object.keys()

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

تبدیل اشیا به آرایه

با Object.values()

در نهایت، ما می توانیم همین کار را انجام دهیم، اما این بار با مقادیر شی

تبدیل اشیا به آرایه

تبدیل نوع در مقابل اجبار نوع

هر دو نوع تبدیل و اجبار نوع به نظر می رسند و شبیه به هم هستند، اما چیزهای متفاوتی هستند. وقتی می گوییم اجبار تایپ، همیشه نوعی تایپ سازی ضمنی است. اگر به خاطر داشته باشید، ضمنی به این معنی است که به طور خودکار انجام می شود، بنابراین برای به خاطر سپردن آن راحت تر، اجبار و مترادف های ضمنی را در نظر بگیرید زیرا اجبار به معنای “متقاعد کردن کسی برای انجام کاری با نخ یا زور” است. بنابراین به نوعی با امر ضمنی مرتبط می شود زیرا به طور خودکار، «با زور» انجام می شود.
با این حال، تبدیل نوع به فرآیند کلی تایپ‌کستی اشاره دارد، چه به صورت ضمنی یا صریح.

خلاصه

Typecasting در جاوا اسکریپت به تبدیل یک نوع داده به نوع داده دیگر، مانند یک عدد به یک رشته اشاره دارد. جاوا اسکریپت دارای هشت نوع داده اصلی است که عبارتند از رشته، عدد، بولی، تهی، تعریف نشده، بیگینت، نماد و شی. نوع شی را می توان به انواع داده های اضافی مانند آرایه، شی و تاریخ تقسیم کرد. جاوا اسکریپت یک زبان پویا با انواع داده های پویا است زیرا انواع متغیرها زمانی تعریف می شوند که مقداری به آنها اختصاص داده شود. تایپ کست در جاوا اسکریپت می تواند به صورت صریح یا ضمنی انجام شود. زمانی که مفسر یا کامپایلر به آن نیاز داشته باشد، تایپ کست ضمنی خودکار است. تایپ سازی صریح به صورت دستی با استفاده از روش های داخلی انجام می شود. متد Number() برای تبدیل هر چیزی به عدد و متد String() یا toString() برای تبدیل هر چیزی به رشته استفاده می شود. متد Boolean() برای تبدیل یک نوع داده به یک بولی استفاده می شود. علاوه بر این، آرایه ها را می توان با استفاده از عملگر spread یا حلقه for به اشیا تبدیل کرد.

نوشته های مشابه

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

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

همچنین ببینید
بستن
دکمه بازگشت به بالا