ECMAScript 2023 (ES14): qué esperar

Apr 17 2023
Hay cuatro propuestas terminadas este año para ECMAScript 2023 (ES14). Los cuatro se enumeran en GitHub como propuestas completadas, que están a punto de publicarse oficialmente.

Hay cuatro propuestas terminadas este año para ECMAScript 2023 (ES14). Los cuatro se enumeran en GitHub como propuestas completadas, que están a punto de publicarse oficialmente. Se prevé que se estrenen oficialmente en junio de 2023.

https://github.com/tc39/proposals/blob/main/finished-proposals.md

Ahora echemos un vistazo más de cerca a cada una de estas propuestas.

Array encontrar desde el último

Esta característica propuesta funcionaría de manera similar a Array.prototype.findy Array.prototype.findIndex, pero con la diferencia clave, iteraría desde el último elemento hasta el primero.

const array = [{ value: 1 }, { value: 2 }, { value: 3 }, { value: 4 }];

array.find(n => n.value % 2 === 1); // { value: 1 }
array.findIndex(n => n.value % 2 === 1); // 0

array.findLastIndex(n => n.value % 2 === 1); // 2
array.findLastIndex(n => n.value === 42); // -1

Esencialmente, si creamos un comando CLI de JavaScript/Node.js como este, el sistema debería detectar y eliminar automáticamente la primera línea antes de ejecutar Node.js. Esto se debe a que la primera línea no es un código JavaScript válido y los intérpretes pueden devolver un error al encontrarlo.

#!/usr/bin/env node

console.log('Hey!');

Símbolos como teclas WeakMap

En pocas palabras, WeakMaps ahora tendrá soporte para símbolos.

const weak = new WeakMap();

const key = Symbol('something');
const someObject = { /**/ };

weak.set(key, someObject);

Esta propuesta sugiere la adición de las siguientes propiedades de función a Array.prototype:

  • Array.prototype.toReversed() -> Array
  • Array.prototype.toSorted(compareFn) -> Array
  • Array.prototype.toSpliced(start, deleteCount, ...items) -> Array
  • Array.prototype.with(index, value) -> Array

Así que esos son métodos inmutables.

const sequence = [1, 2, 3];
sequence.toReversed(); // => [3, 2, 1]
sequence; // => [1, 2, 3]

const outOfOrder = new Uint8Array([3, 1, 2]);
outOfOrder.toSorted(); // => Uint8Array [1, 2, 3]
outOfOrder; // => Uint8Array [3, 1, 2]

const correctionNeeded = [1, 1, 3];
correctionNeeded.with(1, 2); // => [1, 2, 3]
correctionNeeded; // => [1, 1, 3]

Como todavía es abril y tenemos algo de tiempo hasta junio, existe la posibilidad de que se incluyan más funciones en el lanzamiento de ECMAScript 2023.

Espero que hayas encontrado este artículo informativo y agradable. No dude en comunicarse conmigo con cualquier pregunta o comentario que pueda tener. @nairihar

Ejecutables globales de NPM/Node.js Cómo escalar el servidor de socket de Node.js con Nginx y Redis Cómo usar Puppeteer en Heroku