ویژگی‌ های جدید اکماسکریپت ۲۰۱۹ - قسمت دوم

هر سال با ارائه استانداردهای جدید اکماسکریپت، ویژگی های جدیدی هم به جاواسکریپت اضافه می‌شه. با انتشار ویژگی های جدید اکماسکریپت (در تابستان ۲۰۱۹) تصمیم گرفتم این مقاله رو بنویسم. ویژگی های نسخه جدید اکماسکریپت در نود ، و همچنین مرورگرهای کروم، فایرفاکس و سافاری قابل دسترس هستند و برای استفاده از این ویژگی ها تو نسخه های قدیمی تر می‌تونیم از Babel استفاده کنیم.خوب بریم ببینیم ویژگی های جدید اکماسکریپت ۲۰۱۹ چی هست. برای درک بهتر هر بخش، یک مثال ساده هم ارائه شده. قسمت اول این مقاله رو می‌تونید اینجا مطالعه کنید: https://virgool.io/@novonimo/ویژگی-های-جدید-اکماسکریپت-۲%DB%B0۱۹-قسمت-اول-gs7mlxwoxu57 ویژگی‌ های جدید اکماسکریپت ۲۰۱۹ویژگی Array.prototype.flatMapتو قسمت قبل دیدیم که ویژگی مسطح سازی با استفاده از متد flat به سادگی انجام شد. حالا این مثال رو در نظر بگیرید. استاد تصمیم میگیره همه نمره هارو روی نمودار ببره و به هر کس ۷ نمره اضافه کنه و نمره قبلی و نمره جدید رو توی یک لیست داشته باشه.اضافه کردن یک عدد به عناصر یک لیست و ساختن یک لیست دلخواهبه لطف ES2019 بجای استفاده از متد concat می‌تونیم از flat استفاده کنیم:استفاده از flat و map بر روی یک لیستاز اونجایی که استفاده همزمان از map و flat خیلی کاربرد داره،اکماسکریپت ۲۰۱۹ یک متد جدید به اسم flatMap ساخته تا کد بالا رو بازهم ساده تر کنه:استفاده از ویژگی جدید flatMap در اکماسکریپت ۲۰۱۹ خوب اگه یادتون باشه، آرگومان پیش فرض flat مقدار ۱ بود. flatMap از ترکیب flat و map به وجود اومده که flat اون آرگومانی نداره، پس همیشه عمق مسطح سازی متد flatMap ، یک هست!مثال زیر نشون می‌ده که با تغییر مدل map دیگه عمل مسطح سازی تا ۲ عمق انجام نمی‌شه:عمق مسطح سازی متد flatMap همیشه برابر با ۱ هستوضعیت پشتیبانی از این ویژگی جدید: وضعیت پشتیبانی از ویژگی flatMap در محیط های مختلفویژگی‌ های جدید اکماسکریپت ۲۰۱۹ویژگی String.trimStart and String.trimEndقبلا وقتی می‌خواستیم فاصله های اضافی رو از یک رشته پاک کنیم از متدهای String.trimRight و همچنین String.trimLeft استفاده می‌کردیم. درسته که مشکلی با عملکرد این متدها وجود نداره اما برای خیلی ها این اسامی بار معنایی مناسبی رو ارائه نمی‌کنه:استفاده از متدهای trimLeft و trimRight اکماسکریپت ۲۰۱۹ برای این توابع اسامی بهتر و ملموس تری رو ارائه کرده:ویژگی جدید trimEnd و trimStartخط آخر استفاده همزمان از هردو متد برای حذف همه فواصل اضافی رو نشون میده.وضعیت پشتیبانی از این ویژگی جدید:وضعیت پشتیبانی از ویژگی های جدید trimStart و trimEndویژگی‌ های جدید اکماسکریپت ۲۰۱۹ویژگی Function.toStringاین ویژگی قبلا هم وجود داشته اما نحوه نمایش خروجی این متد توی اکماسکریپت ۲۰۱۹ تغییر کرده.نحوه نمایش فعلی این متد رو می‌تونید ببینید:ویژگی Function.toString با نسخه های فعلی اکماسکریپتمی‌بینید که همه خط های جدید و فواصل تب ، به کارکترهای n\ و t\ تبدیل شده و کل خروجی در یک خط نمایش داده شده. توی اکماسکریپت جدید این ویژگی تغییر کرده:ویژگی Function.toString در اکماسکریپت ۲۰۱۹وضعیت پشتیبانی از این ویژگی جدید:وضعیت پشتیبانی از ویژگی جدید Function.toStringسایر مقاله های من در ویرگول: https://virgool.io/JavaScript8/آبجکت-بدون-اثر-جانبی-در-جاواسکریپت-wswtjtwpguuq https://virgool.io/@novonimo/چرا-ریداکس-qlhmkcxf6dzv https://virgool.io/iran-react-community/فانکشنال-کامپوننت-در-مقابل-کلاس-کامپوننت-b8bhzvut2zp1 Contact With me: https://t.me/nimamohamadian https://www.facebook.com/nimamohamadian89 https://twitter.com/Nima_Mohamadian https://www.linkedin.com/in/nima-mohamadian-57ba63123