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:

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

Pruebe usted mismo

Instancia de BigInt

let x = 9999999999999999;
let y = 9999999999999999n;

Pruebe usted mismo

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);

Pruebe usted mismo

El tipo de JavaScript de BigInt es "bigint":

Ejemplo

let x = BigInt(999999999999999);
let type = typeof x;

Pruebe usted mismo

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");

Pruebe usted mismo

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);

Pruebe usted mismo

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);

Pruebe usted mismo

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 undefinedentonces ?? el operador devuelve el primer parámetro.

de lo contrario devuelve el segundo.

Ejemplo

let name = null;
let text = "missing";
let result = name ?? text;

Pruebe usted mismo

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 nullentoncesOperador de cadena opcionaldevuelve undefined(en lugar de lanzar un error).

Ejemplo

const car = {type:"Fiat", model:"500", color:"white"};
let name = car?.name;

Pruebe usted mismo

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 verdaderoasigna el segundo valor.

Ejemplo de asignación lógica AND

let x = 100;
x &&= 5;

Pruebe usted mismo

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 falsoasigna el segundo valor.

Ejemplo de asignación lógica OR

let x = 10;
x ||= 5;

Pruebe usted mismo

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 nullasigna el segundo valor.

Ejemplo de asignación de combinación de valores nulos

let x = 10;
x ??= 5;

Pruebe usted mismo

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