Escribo esto mientras pongo en práctica lo que leo en los siguientes artículos sobre ECMAScript 2019:
Voy a ir siguiendo el orden de la primera de las publicaciones, pero los ejemplos y la explicación viene de mi propia mano.
Si te cuesta lidiar con el idioma de Shakespeare, sigue leyendo:
Array.Flat()
Permite concatenar, progresivamente, los elementos de un array incluido dentro de otro, con el primero.
Creo que no me he explicado completamente bien, pero dejo un par de ejemplos donde se ve claramente lo que produce este método:


Array.flatMap()
Este método es el resultado conjunto de aplicarle a un array primero un .map() e inmediatamente después un .flat()

Object.Entries() y Object.fromEntries()
Con el primero, podemos transformar un objeto en un array que contenga cada uno de los pares “key-value” como un elemento array dentro de otro de orden superior:

El segundo método nos permite realizar la operación a la inversa, partimos ahora de la variable definida como “arrFromObj”:

String.trimStart() & Strim.trimEnd()
Es conocido el método “trim()”, del objeto “String”, que se encarga de eliminar los espacios en blanco existentes en la parte inicial y final de una cadena de texto:

Pues bien, estos dos nuevos métodos nos permiten ser más selectivos y elegir si eliminamos los espacios vacíos previos o posteriores:

Básicamente igual que “trimLeft()” y “trimRight()” que ya existían antes. La verdad es que no sé cuál es la diferencia…
“CatchBinding”
Al usar try/catch, ya no sera necesario decirle a “catch” que nos recoja el evento del error como argumento de la función para que lance la funcionalidad que encapsula:
Pasamos de:
try{
(..)
}catch(e){
(..)
};a lo siguiente:
try{
(..)
}catch{
(..)
};Si no sabes cómo funciona la dupla try{}catch{} para controlar los posibles errores de ejecución, revisa el artículo que publiqué hace unos días:
toString()
Con el método toString() del objeto “function”, podemos convertir la función almacenada en la variable indicada en una cadena de texto:

Symbol.description
Leyendo el artículo que he referenciado antes la verdad es que no me ha quedado muy claro, así que he recurrido a MDN:
Y copio literalmente la descripción que allí se hace:
Symbol es un tipo de datos cuyos valores son únicos e immutables. Dichos valores pueden ser utilizados como identificadores (claves) de las propiedades de los objetos. Cada valor del tipo Symbol tiene asociado un valor del tipo String o Undefined que sirve únicamente como descripción del símbolo.
La función
Symbolprimitive data type es el constructor de valores del tipo Symbol. CuandoSymboles llamado como función nos devuelve una nuevo valor del tipo Symbol. El constructorSymbolno debe ser usado con el operadornew. Tampoco debe ser extendido mediante clases.
Mentiría si digo que comprendo bien su utilidad, y hasta que no la entienda bien no voy a escribir sobre ella.
Sólo destacar que ahora se pueden acceder a los valores que almacena “Symbol()” directamente mediante el método “Symbol.description”:

JSON.Stringify()
JSON.Stringify() es un método que nos sirve para convertir objetos en cadenas de texto JSON. Esta no es la novedad de ECMA2019, pero no está de más darle un repaso:
Es habitual obtener [object Object] cuando intentamos devolver el resultado de un objeto como texto sin haberlo procesado previamente, y para ello nos sirve de utilidad la función indicada.
Pero la verdadera razón de ser de JSON.Stingify() es que, cuando enviamos datos al servidor web, estos deben ser habitualmente cadenas de texto (string), por lo que necesitaremos procesarlo previamente.
Ahora la actualización permite que sean interpretados correctamente los códigos que generar caracteres unicode:

Ya que antes devolvía el contenido en formato texto tal cual.
Array.Sort Stability
El método “.sort” es el que permite ordenar los elementos de un Array…

Básicamente lo que se ha hecho ahora es mejorar el algoritmo del “motor” de JavaScript que se encarga de realizar este ordenamiento de objetos.
Si te interesa echar un vistazo, te dejo un enlace a una descripción del referenciado algoritmo:
Y una pequeña animación de cómo funciona:

Espero que te haya sido de utilidad el artículo para aprender a usar estas nuevas “herramientas” que incorpora la nueva versión de JavaScript

Keep Coding!

