Novedades en Javascript 2022
Javascript puro y duro…
Recientemente han aparecido las especificaciones de la última versión de Javascript de este año y vienen con bastantes cosas interesantes a tener en cuenta. Aunque la web oficial presenta toda la información superdetallada (por supuesto en inglés), vamos a hacer un pequeño resumen de las características más interesantes:
Elementos de clase privados: Javascript tiene una programación orientada a objetos muy limitada en comparación con otros lenguajes (de hecho, no se puede decir que sea una verdadera programación orientada a objetos, aunque para suplir esas carencias tenemos Typescript…), pero dentro de sus posibilidades actuales en esta versión, estaría la posibilidad de poder generar atributos privados dentro de una clase. Por defecto, todos los elementos son públicos, pero se pueden generar como privados añadiendo una almohadilla (#) al nombre del elemento:
class Persona {
#nombre = ““;
#ciudad = ““;
#pais = ““;
getNombre() { return #nombre; }
getCiudad() { return #ciudad; }
getPais() { return #pais; }
}
Si intentas acceder a un elemento privado, como en cualquier lenguaje POO, se producirá un error de violación de acceso:console.log(persona.#nombre); // no se puedeKeyword “in”: se ha añadido una nueva palabra clave para saber si un objeto de clase contiene un atributo:
if (#pais in persona) …“await” fuera de una función: ahora mismo esta palabra para las operaciones asíncronas sólo se puede usar dentro de una función. Pues bien, desde esta versión se podrá usar fuera también:
jQuery = await import('https://cdn-b.example.com/jQuery')
Hay que tener en cuenta que en realidad es una especie de alias para las promesas con lo que realmente se puede usar con las funciones then(), catch(), etc…
Por cierto, la última línea es una “dependency fallback” con “dynamic dependency pathing”, es decir, definición de recursos que muestra errores en el caso de que las dependencias no puedan ser ejecutadas.Adquisición de valores en un array: se ha añadido una nueva función a los arrays que facilita un poco las cosas a la hora de trabajar con los elementos, “at()” permite acceder a los elementos tanto en orden normal como en orden reverso:
let array = [1, 2, 3, 4, 5];
console.log(array.at(-1)); // imprimirá 5Causas de errores: se pueden indicar causas de un error cuando se lanza, ayudando a completar las excepciones:
throw new Error(“Ha pasao algo!”, {
cause: “has hecho algo mal aquí…”
});
Estos son sólo algunos de los nuevos elementos. Algunos de ellos ya se osaban extraoficialmente, pero como es lógico ahora los navegadores les tienen que dar soporte oficial… A ver si le ponen las pilas a este lenguaje y nos sorprenden con más avances que permitan programar en el sin tener que tirar de tantos accesorios…

