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

5. Nuevos tipos de datos: Records y Tuples

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