ECMAScript 2020
Número de versión de JavaScript
Las versiones antiguas de JS se nombran con números: ES5 (2009) y ES6 (2015).
Desde 2016, las versiones se nombran por años: ECMAScript 2016, 2017, 2018, 2019, ...
Nuevas características de ES2020:
- BigInt
- Método de cadena matchAll()
- Operador de valor nulo (??)
- Operador de cadena opcional (?.)
- Operador de asignación lógica AND (&&=)
- Operador de asignación lógica OR (||=)
- Operador de asignación de valor nulo (??=)
- Promise.allSettled()
- Importación dinámica
Advertencia
Estas características son relativamente nuevas.
Los navegadores más antiguos pueden necesitar código alternativo (Polyfill).
BigInt de JavaScript
La variable BigInt de JavaScript se utiliza para almacenar valores enteros demasiado grandes para que puedan ser representados por números JavaScript normales.
El entero de JavaScript puede tener solo 15 dígitos precisos.
Instancia de entero
let x = 999999999999999; let y = 9999999999999999; // Muy grande
Instancia de BigInt
let x = 9999999999999999; let y = 9999999999999999n;
Para crear BigInt, por favor coloque n
Añadir al final de un entero o llamar a BigInt():
Ejemplo
let x = 1234567890123456789012345n; let y = BigInt(1234567890123456789012345);
El tipo de JavaScript de BigInt es "bigint":
Ejemplo
let x = BigInt(999999999999999); let type = typeof x;
Desde septiembre de 2020, todos los navegadores modernos admiten BigInt:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 67 | Edge 79 | Firefox 68 | Safari 14 | Opera 54 |
Mayo de 2018 | Enero de 2020 | Julio de 2019 | Septiembre de 2020 | Junio de 2018 |
Método matchAll() de cadena de JavaScript
Antes de ES2020, no había métodos de cadena disponibles para buscar todas las apariciones de una cadena en una cadena.
Ejemplo
const iterator = text.matchAll("Cats");
Si el parámetro es una expresión regular, debe establecer el marcador global (g
) o de lo contrario se lanzará un TypeError.
Ejemplo
const iterator = text.matchAll(/Cats/g);
Si se realiza una búsqueda insensible a mayúsculas y minúsculas, debe establecer el marcador de insensibilidad a mayúsculas y minúsculas (i
)
Ejemplo
const iterator = text.matchAll(/Cats/gi);
Consejo:ES2021 Se introdujo el método de cadena replaceAll().
Operador de combinación de valores nulos (Operador de Combinación de Valores Nulos) (??)
si el primer parámetro no es un valor nulo (null
o undefined
entonces ??
el operador devuelve el primer parámetro.
de lo contrario devuelve el segundo.
Ejemplo
let name = null; let text = "missing"; let result = name ?? text;
Desde marzo de 2020, todos los navegadores modernos soportan el operador nullish:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 80 | Edge 80 | Firefox 72 | Safari 13.1 | Opera 67 |
Febrero de 2020 | Febrero de 2020 | Enero de 2020 | Marzo de 2020 | Marzo de 2020 |
Operador de cadena opcional (Operador de Cadena Opcional) (?.)
si el objeto es undefined
o null
entoncesOperador de cadena opcionaldevuelve undefined
(en lugar de lanzar un error).
Ejemplo
const car = {type:"Fiat", model:"500", color:"white"}; let name = car?.name;
Desde marzo de 2020, todos los navegadores modernos soportan ?.=
Operadores:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 80 | Edge 80 | Firefox 74 | Safari 13.1 | Opera 67 |
Febrero de 2020 | Febrero de 2020 | Marzo de 2020 | Marzo de 2020 | Marzo de 2020 |
Operador de asignación AND lógico (operador &&=)
Operador de asignación lógica ANDusado entre dos valores.
si el primer valor es verdadero
asigna el segundo valor.
Ejemplo de asignación lógica AND
let x = 100; x &&= 5;
Desde septiembre de 2020, todos los navegadores modernos lo soportan &&=
Operadores:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 85 | Edge 85 | Firefox 79 | Safari 14 | Opera 71 |
Agosto de 2020 | Agosto de 2020 | Marzo de 2020 | Septiembre de 2020 | Septiembre de 2020 |
Operador de asignación lógica OR (operador ||=)
Operador de asignación lógica ORusado entre dos valores.
si el primer valor es falso
asigna el segundo valor.
Ejemplo de asignación lógica OR
let x = 10; x ||= 5;
Desde septiembre de 2020, todos los navegadores modernos lo soportan ||=
Operadores:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 85 | Edge 85 | Firefox 79 | Safari 14 | Opera 71 |
Agosto de 2020 | Agosto de 2020 | Marzo de 2020 | Septiembre de 2020 | Septiembre de 2020 |
Operador de combinación de valores nulos (operador ??=)
Operador de combinación de valores nulosoperador de asignación de combinación de valores nulos (Nullish Coalescing Assignment Operator) entre dos valores.
si el primer valor undefined
o null
asigna el segundo valor.
Ejemplo de asignación de combinación de valores nulos
let x = 10; x ??= 5;
Desde septiembre de 2020, todos los navegadores modernos lo soportan ??=
Operadores:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 85 | Edge 85 | Firefox 79 | Safari 14 | Opera 71 |
Agosto de 2020 | Agosto de 2020 | Marzo de 2020 | Septiembre de 2020 | Septiembre de 2020 |