امیر سلطانیان
امیر سلطانیان
خواندن ۲ دقیقه·۴ سال پیش

بروزرسانی جدید اکما اسکرپت ES2021 - بخش اول

ویژگی‌های اکما اسکریپت ۲۰۲۱ - ES12
ویژگی‌های اکما اسکریپت ۲۰۲۱ - ES12


از سال ۲۰۱۵ با انتشار ES6 که پر از ویژگی‌های جدید بود، اکما تصمیم گرفت هر سال برای این زبان محبوب دنیای مرورگر ها بروزرسانی جدید ارائه کنه. طبق همین زمان‌بندی ویژگی‌هایی که در طول هر سال به استیج ۴ میرسند در ESNext (اصطلاحی به معنی نسخه بعدی اکما اسکریپت) منتشر خواهند شد. توی این ویرگول میخوام بهتون ویژگی های ES12 یا همون اکما اسکریپت ۲۰۲۱ که ماه june (خرداد) رسما منتشر خواهد شد رو معرفی کنم.

متد جدیدی برای پروتوتایپ استرینگ replaceAll

اگر توسعه‌دهنده جاوا اسکریپت باشید حتما بارها از متد replace در رشته‌ها استفاده کردین. این متد زیررشته وارد شده در پارامتر اول رو در رشته اصلی پیدا و اونو با پارامتر دومش جایگزین می‌کنه. مسئله اینجاست که این متد بعد از پیدا کردن اولین زیررشته برابر با پارامتر اول از بررسی ادامه رشته و (احتمالا) پیدا کردن سایر زیررشته‌های برابر صرف نظر می‌کنه.

در حال حاضر برای جایگزین کردن همه زیررشته‌های برابر با پارامتر اول از یکی از این دو روش استفاده میشه:

استفاده از متد replace به همراه ورودی regEx همراه با فلگ گلوبال

استفاده از regEx با فلگ گلوبال ( g ) در متد replace
استفاده از regEx با فلگ گلوبال ( g ) در متد replace


تکه کردن (split) متن به آرایه و چسباندن (join) مجدد

استفاده از ترکیب متد های split و join
استفاده از ترکیب متد های split و join


متد جدید replaceAll هم دقیقا با همین هدف ایجاد شده. از این به بعد می‌تونیم برای جایگزین کردن همه تکرار‌های یک عبارت در یک رشته از متد replaceAll استفاده کنیم.

استفاده از متد replaceAll
استفاده از متد replaceAll


اکما راجب دلیل اضافه کردن این متد گفته قصد اون‌ها ساده کردن عملیات جایگزینی برای استفاده های عادی بوده اما بد نیست که در نظر داشته باشید که طبق این بنچمارک در مرورگرهای کروم و فایرفاکس روش دوم و در مرورگر سافاری روش اول پرفورمنس به مراتب بهتری نسبت به متد replaceAll داشتند پس می‌تونید فکر کنید همچین متدی رو هیچوقت اکما معرفی نکرده، تا کد‌های سریع‌تری بزنید =))


کنترل بیشتر روی اجرای توابع همزمان جاوا اسکریپت با متد Promise.any

مدیریت توابع همزمان در جاوا اسکریپت با استفاده از آبجکت Promise به شدت ساده‌تر شده و با گسترده شدن استفاده از این Object Type گاهی اوقات به توابع کنترلی برای اون‌ها نیاز پیدا می‌کنیم.

با استفاده از تابع Promise.any شما می‌تونید مطمعن باشید که در صورت اجرای یکی از Promise ها تابع بازگشنی شما اجرا می‌شه و در صورتی که تمامی Promise های شما Reject بشن تابع بازگشتی بعدی اجرا خواهد شد. در زیر نمونه‌ای از استفاده این تابع رو می‌تونید مشاهده کنید.

استفاده از متد Promise.any
استفاده از متد Promise.any


توجه کنید که در صورتی که برای خود تابع مشکلی ایجاد بشه (مثل نامعتبر بودن ورودی) کالبک Reject اجرا می‌شه که از طریق بلوک catch می‌تونید این error رو مدیریت کنید.


این اولین نوشته ویرگول من بود و برای این که ایده‌آل گرایی باعث تاخیر در انتشارش نشه به صورت دو قسمته منتشرش می‌کنم. ازتون تشکر میکنم که من رو خوندید.

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

اگر هم پسندیدید حتما از طریق دکمه قلب که یکم پایین‌تر هست بهم بگید. =))

امیدوارم منتظر بخش بعدی این نوشته باشید...


جاوا اسکریپتاکما اسکریپتes12es2021javascript
توسعه دهنده وب و ارادتمند جاوا اسکریپت
شاید از این پست‌ها خوشتان بیاید