Nuevas funciones en la actualización de ECMAScript 2021

ECMAScript es una parte del lenguaje JavaScript que se usa principalmente en tecnología web, creación de sitios web o aplicaciones web. ECMAScript está creciendo como uno de los lenguajes de programación de propósito general más utilizados en el mundo. Se utiliza principalmente en la integración con navegadores web y también se adopta para servidores y aplicaciones integradas.

Las nuevas actualizaciones de ECMAScript se lanzarán en julio. Las nuevas mejoras se introducen para hacer que JavaScript sea más potente y también para facilitar el trabajo de los desarrolladores. Proporciona nuevas funciones, formas sencillas de realizar trabajos complejos y mucho más.

Nuevas actualizaciones: las nuevas funciones de JavaScript en ECMAScript 2021 son las siguientes:

1. Operadores de asignación lógica: Los operadores de asignación lógica introducen nuevos operadores que combinan operadores lógicos y expresiones de asignación.

  • And & Equals (&&=): Asigna cuando el valor es verdadero.
     

    Versión previa:

    let x = 1;
    if(x){
      a = 10;
    }

     Producción: 

    x = 10

    Nueva versión:

    let x = 1;
    x &&= 10;

     Producción: 

    x = 10
  • OR & Equals (||=): Asigna cuando el valor es falso. La operación de asignación ocurre solo si x es un valor falso. Si x contiene 1, que es un valor verdadero, la asignación no ocurre. Aquí x contiene 0, por lo tanto, ocurre la asignación.

    Versión previa:

    let x = 0;
    x = x || 10;

     Producción:

    x = 10

     

    Nueva versión:

    let x = 0;
    x ||= 10

     Producción:

    x = 10
  • Unión nula e igual a (??=): Símbolo ?? es un operador coalescente nulo en JavaScript. Comprueba si un valor es nulo o indefinido.
    let x;
    let y = 10;
    x ??= y;
    console.log(x);
    console.log(y);

    Salida: el valor de x no está definido, por lo tanto, la expresión del lado derecho se evalúa y establece x en 10.

    10
    10

2. Separadores numéricos: para mejorar la legibilidad y separar grupos de dígitos, los literales numéricos utilizan guiones bajos como separadores.

// A billion dollar that I want to earn
const money = 1_000_000_000;

const money = 1_000_000_000.00;

 También se puede utilizar para bases binarias, hexadecimales y octales.

3. String replaceAll() : si queremos reemplazar todas las instancias de una substring en una string, este nuevo método replaceAll() es muy útil.

const s = "You are reading JavaScript 2021 new updates.";
console.log(s.replaceAll("JavaScript", "ECMAScript"));

 Producción : 

You are reading ECMAScript 2021 new updates.

4. Promise.any: El método Promise.any() devuelve una promesa que se resolverá tan pronto como se resuelva una de las promesas. Es lo opuesto al método Promise.all() que espera a que se resuelvan todas las promesas antes de que se resuelva.

¿Qué sucederá cuando se rechacen todas las promesas? El método arrojará una excepción AggregateError con el motivo del rechazo. Hemos escrito el código dentro de un bloque try-catch.

const promiseOne = new Promise((resolve, reject) => {
  setTimeout(() => reject(), 1000);
});

const promiseTwo = new Promise((resolve, reject) => {
  setTimeout(() => reject(), 2000);
});

const promiseThree = new Promise((resolve, reject) => {
  setTimeout(() => reject(), 3000);
});

try {
  const first = await Promise.any([
    promiseOne, promiseTwo, promiseThree
  ]);
  // If any of the promises was satisfied.
} catch (error) {
  console.log(error);
  // AggregateError: If all promises were rejected
}

Producción:

await is only valid in async functions and the top-level bodies of modules

5. Métodos de clase privados: los métodos privados tienen alcance solo dentro de la clase, por lo que fuera de la clase no son accesibles.

Versión previa:

class GfG {
  showMe() {
    console.log("I am a geek")
  }
  #notShowMe() {
    console.log("Hidden informations")
  }
}

const gfg = new GfG()

gfg.showMe()
gfg.notShowMe() 

Salida: El error se muestra de la siguiente manera. Esto se debe a que notShowMe() ahora es un método privado dentro de la clase GfG y solo se puede acceder a través de un método público dentro de la clase.

gfg.notShowMe is not a function

Nueva versión:

class GfG {
  showMe() {
    console.log("I am a geek");
  }
  #notShowMe() {
    console.log("Hidden informations");
  }
  showAll() {
    this.showMe()
    this.#notShowMe();
  }
}

const gfg = new GfG();
gfg.showAll();

Salida: Creamos un nuevo método público llamado showAll() dentro de la clase GfG. Desde este método público, podemos acceder al método privado #notShowMe() y dado que nuestro nuevo método es público, obtenemos el siguiente resultado.

I am a geek
Hidden informations

6. Getters y Setters privados: al igual que los métodos privados, ahora podemos crear getters y setters para que solo se pueda acceder a ellos dentro de una clase o por instancia creada.

class GfG {
  get #Name() {
    return "GeeksforGeeks"
  }
  
  get viewName() {
    return this.#Name
  }
}

let name = new GfG();
console.log(name.viewName);

Producción:

 GeeksforGeeks

Publicación traducida automáticamente

Artículo escrito por animeshmaru16 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *