ECMAScript 2021

1. Promise.any

Promise.any([
fetch(endpointOne).then(()=>{return '1'})
fetch(endpointTwo).then(()=>{return '2'})
fetch(endpointThree).then(()=>{return '3'})
])
.then((res)=> {})// Se lanza el then cuando cualquiera se resuelve
.catch((err) => console.log({error}))

2. replaceAll

const string = 'Esto es un ejemplo de párrafo\ncon un par de\nsaltos de linea'
string.replaceAll('\n', ' ')
// Esto es un ejemplo de párrafo con un par de saltos de linea

3. Propiedades y métodos privados en Clases

class MyClass {
#privateYear
constructor() {
this.#privateYear = 2021
}

static #moreInterestFrameworkMethod() {
return 'Svelte'
}
}

4. Temporal

  • Proporcionar API fáciles de usar para cálculos de fecha y hora.
  • Soporte para todas las zonas horarias.
  • Tratar solo con objetos inmutables.
  • Soporte de calendarios no gregorianos.

5. Nuevos tipos de datos: Records y Tuples

  • Records (objeto inmutable).
  • Tuples (array inmutable).
const javascript = #{
year: 2021,
framework: 'Svelte'
}
const frameworks = #['Vue', 'React, 'Svelte', 'Angular']
javascript.year = 2022 // Error
const javascript = #{
year: 2021,
frameworks: #['Vue', 'React, 'Svelte', 'Angular']
}
const javascript = { year: 2021 }
const javascript2 = { year: 2021 }
javascript === javascript2 // false
JSON.stringify(javascript) === JSON.stringify(javascript2) //true
Si lo pasamos a Records:const javascript = #{ year: 2021 }
const javascript2 = #{ year: 2021 }
javascript === javascript2 // true

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store