Anotaciones

Link de el curso de ECMASCRIPT

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 document

Nullish 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 document

optional_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);

enlace de Ecma International's TC39(ECMASCRIPT)