توسعه دهنده جاواسکریپت
ویژگی های جدید اکماسکریپت ۲۰۱۹ - قسمت دوم
هر سال با ارائه استانداردهای جدید اکماسکریپت، ویژگی های جدیدی هم به جاواسکریپت اضافه میشه. با انتشار ویژگی های جدید اکماسکریپت (در تابستان ۲۰۱۹) تصمیم گرفتم این مقاله رو بنویسم. ویژگی های نسخه جدید اکماسکریپت در نود ، و همچنین مرورگرهای کروم، فایرفاکس و سافاری قابل دسترس هستند و برای استفاده از این ویژگی ها تو نسخه های قدیمی تر میتونیم از Babel استفاده کنیم.
خوب بریم ببینیم ویژگی های جدید اکماسکریپت ۲۰۱۹ چی هست. برای درک بهتر هر بخش، یک مثال ساده هم ارائه شده. قسمت اول این مقاله رو میتونید اینجا مطالعه کنید:
ویژگی Array.prototype.flatMap
تو قسمت قبل دیدیم که ویژگی مسطح سازی با استفاده از متد flat به سادگی انجام شد. حالا این مثال رو در نظر بگیرید. استاد تصمیم میگیره همه نمره هارو روی نمودار ببره و به هر کس ۷ نمره اضافه کنه و نمره قبلی و نمره جدید رو توی یک لیست داشته باشه.
به لطف ES2019 بجای استفاده از متد concat میتونیم از flat استفاده کنیم:
از اونجایی که استفاده همزمان از map و flat خیلی کاربرد داره،اکماسکریپت ۲۰۱۹ یک متد جدید به اسم flatMap ساخته تا کد بالا رو بازهم ساده تر کنه:
خوب اگه یادتون باشه، آرگومان پیش فرض flat مقدار ۱ بود. flatMap از ترکیب flat و map به وجود اومده که flat اون آرگومانی نداره، پس همیشه عمق مسطح سازی متد flatMap ، یک هست!
مثال زیر نشون میده که با تغییر مدل map دیگه عمل مسطح سازی تا ۲ عمق انجام نمیشه:
وضعیت پشتیبانی از این ویژگی جدید:
ویژگی String.trimStart and String.trimEnd
قبلا وقتی میخواستیم فاصله های اضافی رو از یک رشته پاک کنیم از متدهای String.trimRight و همچنین String.trimLeft استفاده میکردیم. درسته که مشکلی با عملکرد این متدها وجود نداره اما برای خیلی ها این اسامی بار معنایی مناسبی رو ارائه نمیکنه:
اکماسکریپت ۲۰۱۹ برای این توابع اسامی بهتر و ملموس تری رو ارائه کرده:
خط آخر استفاده همزمان از هردو متد برای حذف همه فواصل اضافی رو نشون میده.
وضعیت پشتیبانی از این ویژگی جدید:
ویژگی Function.toString
این ویژگی قبلا هم وجود داشته اما نحوه نمایش خروجی این متد توی اکماسکریپت ۲۰۱۹ تغییر کرده.
نحوه نمایش فعلی این متد رو میتونید ببینید:
میبینید که همه خط های جدید و فواصل تب ، به کارکترهای n\ و t\ تبدیل شده و کل خروجی در یک خط نمایش داده شده. توی اکماسکریپت جدید این ویژگی تغییر کرده:
وضعیت پشتیبانی از این ویژگی جدید:
سایر مقاله های من در ویرگول:
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
مطلبی دیگر از این انتشارات
آنچه از html یاد گرفتم :)
مطلبی دیگر از این انتشارات
توضیح ساده prototype در جاوا اسکریپت
مطلبی دیگر از این انتشارات
هر آنچه در سال 2018 برای توسعه Front-End اتفاق افتاد