Ecmascript11
Dinamic Import
Esta nueva caracteristica nos va a permitir llamar elementos de forma dinamica, para poder llamar piezas de codigo que nos van a permitir optimizar nuestro proyecto.
Consiste en importar desde el html modulos de forma sencilla

Habiendo llamado al archivo index.js, lo configuramos para que cuando se desate el evento click, importe el modulo file.js

el archivo file.js es una funcion que nos va a lanzar un console.log()

Big int
Reutilizaremos los archivos html e index.js


Hay dos formas de utilizar esto, una es añadiendo una n al numero que quiero darle este formato o la otra es introduciendola como parametro de un metodo llamado BigInt();

Promise all Settled
La cual nos va a devolver una promesa que se resuelve despues que todas las promesas dadas se hayan cumplido o rechazado en una serie de objetos que se describe el resultado de cada promesa

globalThis
es como utilizar window pero dentro de node para el backend, de esta manera tenemos acceso a los elementos globales, así nos permite trabajar un worker o trabajar con diferentes opciones
Mozila developer documentNullish coalescing operator
operador de Nulo, es un operador logico que nos devuelve su operando del lado derecho cuando el operador del lado izquierdo es nulo o indefinido, y de lo contrario nos devuelve el operador de lado izquierdo
const devuelveDefault = null ?? 'default string';
const devuelve_asd = 'asd' ?? 'default string';
Mozila developer documentoptional_chaining
arreglos, objetos y acceder a los metodos nos ayuda mucho chaining con el cual vamos a poder trabajar diferentes niveles de estos recursos
al tratar de acceder a estos puedo yo preguntar si existen, esto no rompera mi aplicacion, en caso de no poder acceder a la data me va a lanzar un undefined


Mozila developer document
Ecmascript12
// 🧯 Replace
const string = "JavaScript es maravilloso, con JavaScript puedo crear el futuro de la web.";
const replacedString = string.replace("JavaScript", "Python");
console.log(replacedString);
//// Output: Python es maravilloso, con JavaScript puedo crear el futuro de la web.
const replacedString2 = string.replaceAll("JavaScript", "Python");
console.log(replacedString2);
//// Output: Python es maravilloso, con Python puedo crear el futuro de la web.
// 🔒 Metodos privados
class Message {
#show(val){ // Con el # convertimos al método en privado
console.log(val);
};
};
const message = new Message();
message.show('Hola!');
// 👽 Promise Any
const promise1 = new Promise((resolve, reject) => reject("1"));
const promise2 = new Promise((resolve, reject) => resolve("2"));
const promise3 = new Promise((resolve, reject) => resolve("3"));
Promise.any([promise1, promise2, promise3])
.then(response => console.log(response));
// nos devolvio solo el primer valor en resolverse
Output: 2
// 🦴 WeakRef(element);
class AnyClass {
constructor(element){
this.ref = new WeakRef(element);
}
{...}
}
// así evitamos que la memoria borre los elementos que vamos a utilizar
// 🧪 Nuevos operadores lógicos
let isTrue = true;
let isFalse = false;
console.log(isTrue &&= isFalse);
let isTrue = true;
let isFalse = false;
console.log(isTrue ||= isFalse);
let isTrue = true;
let isFalse = false;
console.log(isTrue &&= isFalse);