از سال ۲۰۱۵ با انتشار ES6 که پر از ویژگیهای جدید بود، اکما تصمیم گرفت هر سال برای این زبان محبوب دنیای مرورگر ها بروزرسانی جدید ارائه کنه. طبق همین زمانبندی ویژگیهایی که در طول هر سال به استیج ۴ میرسند در ESNext (اصطلاحی به معنی نسخه بعدی اکما اسکریپت) منتشر خواهند شد. توی این ویرگول میخوام بهتون ویژگی های ES12 یا همون اکما اسکریپت ۲۰۲۱ که ماه june (خرداد) رسما منتشر خواهد شد رو معرفی کنم.
اگر توسعهدهنده جاوا اسکریپت باشید حتما بارها از متد replace در رشتهها استفاده کردین. این متد زیررشته وارد شده در پارامتر اول رو در رشته اصلی پیدا و اونو با پارامتر دومش جایگزین میکنه. مسئله اینجاست که این متد بعد از پیدا کردن اولین زیررشته برابر با پارامتر اول از بررسی ادامه رشته و (احتمالا) پیدا کردن سایر زیررشتههای برابر صرف نظر میکنه.
در حال حاضر برای جایگزین کردن همه زیررشتههای برابر با پارامتر اول از یکی از این دو روش استفاده میشه:
استفاده از متد replace به همراه ورودی regEx همراه با فلگ گلوبال
تکه کردن (split) متن به آرایه و چسباندن (join) مجدد
متد جدید replaceAll هم دقیقا با همین هدف ایجاد شده. از این به بعد میتونیم برای جایگزین کردن همه تکرارهای یک عبارت در یک رشته از متد replaceAll استفاده کنیم.
اکما راجب دلیل اضافه کردن این متد گفته قصد اونها ساده کردن عملیات جایگزینی برای استفاده های عادی بوده اما بد نیست که در نظر داشته باشید که طبق این بنچمارک در مرورگرهای کروم و فایرفاکس روش دوم و در مرورگر سافاری روش اول پرفورمنس به مراتب بهتری نسبت به متد replaceAll داشتند پس میتونید فکر کنید همچین متدی رو هیچوقت اکما معرفی نکرده، تا کدهای سریعتری بزنید =))
مدیریت توابع همزمان در جاوا اسکریپت با استفاده از آبجکت Promise به شدت سادهتر شده و با گسترده شدن استفاده از این Object Type گاهی اوقات به توابع کنترلی برای اونها نیاز پیدا میکنیم.
با استفاده از تابع Promise.any شما میتونید مطمعن باشید که در صورت اجرای یکی از Promise ها تابع بازگشنی شما اجرا میشه و در صورتی که تمامی Promise های شما Reject بشن تابع بازگشتی بعدی اجرا خواهد شد. در زیر نمونهای از استفاده این تابع رو میتونید مشاهده کنید.
توجه کنید که در صورتی که برای خود تابع مشکلی ایجاد بشه (مثل نامعتبر بودن ورودی) کالبک Reject اجرا میشه که از طریق بلوک catch میتونید این error رو مدیریت کنید.
این اولین نوشته ویرگول من بود و برای این که ایدهآل گرایی باعث تاخیر در انتشارش نشه به صورت دو قسمته منتشرش میکنم. ازتون تشکر میکنم که من رو خوندید.
اگه سوالی براتون ایجاد شد و یا مشکلی در محتوای نوشته مشاهده کردید حتما کامنت بزارید.
اگر هم پسندیدید حتما از طریق دکمه قلب که یکم پایینتر هست بهم بگید. =))
امیدوارم منتظر بخش بعدی این نوشته باشید...