מפת דרכים של ECMAScript: תכונות JavaScript חדשות לשנת 2019

ECMAScript 2019, הגרסה האחרונה של המפרט המשמש בסיס ל- JavaScript, הושלמה סופית. ECMA International אישרה את המפרט ביוני.

התכונות החדשות שהוצגו ב- ECMAScript 2019 כוללות את הפעולות הבאות:

  • Symbol.prototype.description, נכס אביזר set accessorשאינו מוגדר. get accessorהפונקציה שלה מבצעת שלבים הכוללים: יהי sערך זה, symיהי ?thisSymbolValue(s), וחזור sym. [[Description]]. המטרה של תכונה זו היא לחשוף את [[Description]]החריץ הפנימי של סמל ישירות במקום רק בעקיפין דרך Symbol.prototype.toString.
  • שינויים ב Function.prototype.toString. הוצעו תיקונים כגון יישומים שאינם נדרשים לשמירת טקסט המקור לכל הפונקציות המוגדרות באמצעות קוד ECMAScript.
  • prototype.flatMap, פעולת מערך נפוצה הלוקחת מבנה מערך מקונן ומסירה רמה אחת או יותר של קינון בהתאם לפרמטר שלה. Flat קיים בספריות דומות למערכים כמו Lodash, מה שהוביל את המשתמשים לרצות את אותה פונקציונליות ב- JavaScript וניל.
  • prototype.flatmap, מפה ואחריה דירה, מציעה נוחות קלה ואופטימיזציה קלה. Flatmap נוח מכיוון ששטוח ומיפוי לעיתים קרובות מועילים באותה פעולה. זהו גם אופטימיזציה מכיוון שאין צורך להקצות מערך למיפוי רק כדי להשליך אותו בעת השטחה.
  • prototype.sort(), שיטה שממיינת את האלמנטים של המערך במקום ומחזירה את המערך, עכשיו יציבה.
  • Object.fromEntries, המספק שיטה סטטית חדשה להפיכת רשימה של זוגות ערכי מפתח לאובייקט.
  • String.prototype.trimStartו String.prototype.trimEnd. הרציונל העומד מאחורי תיקונים אלה הוא שכל המנועים העיקריים יישמו פונקציות תואמות trimLeftו- trimRight ללא מפרט סטנדרטי. כדי לשמור על אחידות עם padStart/padEnd, trimStart, trimEnd, trimLeft, ו trimRightמוצעים ככינויים עבור תאימות אינטרנט.
  • עדכונים JSON.stringifyלפליטת UTF-16 מעוצבות היטב (Unicode Transformation Format). נכון לעכשיו, יחידות קוד שלא נוצרו עשויות להיפלט לנקודות קוד פונדקאיות.
  • catchכריכה אופציונלית , המאפשרת למפתחים להשמיט catchכריכה כאשר לא ייעשה שימוש בכריכה.

את המפרט המלא של ECMAScript 2019 ניתן לצפות באופן מקוון באתר ECMA International. ניתן גם להוריד אותו. מהדורות ECMAScript שהושלמו מתפרסמות בדרך כלל בכל חודש יוני, כגון מפרט ECMAScript לשנה שעברה.