Nos permite importación de elemento dinamicamente, para poder llamar piezas de código.
En otras palabras ya no es necesario poner el import
desde el comienzo del documento, si no que se lo puede importar desde cualquier parte del documento.
//file.js
export function hello(){
console.log('Hola mundo')
}
//index.js
const button = document.getElementById('btn');
button.addEventListener("click", async function() {
const module = await import("./file.js");
module.hello();
});
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<button id="btn">File</button>
<script type="module" src="index.js"></script>
</body>
</html>
En el ejemplo importamos el archivo file.js desde la declaración de la variable y no al inicio del documento, para realizar este import
se usa el asyn/await
.
Es un número mas grande que $2^{53}$ y podemos representarlo de forma mas fiable. Existen dos formas de trabajar con estos número y las mostramos a continuación
const aBigNumber = 9007199254740991n;
const anotherBigNumber = BigInt(9007199254740991);
console.log(aBigNumber);
console.log(anotherBigNumber);
Nos devuelve una promesa que se resuelve después de que todas las promesas dadas han sido cumplidas o rechazadas en una serie de objetos que se describe el resultado de cada promesa.
const promise1 = new Promise((resolve,reject) => reject("reject"));
const promise2 = new Promise((resolve,reject) => resolve("resolve"));
const promise3 = new Promise((resolve,reject) => resolve("resolve 1"));
Promise.allSettled([promise1,promise2,promise3])
.then(response => console.log(response))
//salida>
// 0: {status: 'rejected', reason: 'reject'}
// 1: {status: 'fulfilled', value: 'resolve'}
// 2: {status: 'fulfilled', value: 'resolve 1'}
// length: 3
Históricamente, acceder al objeto global ha requerido una sintaxis diferente en diferentes entornos de JavaScript. En la web puede usar window
, self
o frames
- pero en Web Workers solo self
funcionará. En Node.js ninguno de estos funciona, y en su lugar debe usar global
. La palabra clave this
podría usarse dentro de funciones que se ejecutan en modo no estricto, pero this
estará undefined
en módulos y dentro de funciones que se ejecutan en modo estricto.
La propiedad globalThis
proporciona una forma estándar de acceder al this
valor global (y, por lo tanto, al propio objeto global) en todos los entornos. A diferencia de propiedades similares como window
y self
, está garantizado que funciona en contextos de ventana y no ventana. De esta manera, puede acceder al objeto global de manera coherente sin tener que saber en qué entorno se está ejecutando el código.
??
Es un operador lógico que nos devuelve su operando del lado derecho cuando el operando del lado izquierdo es null
o undefined
, caso contrario nos devuelve el del lado izquierdo
const foo = null ?? "Default string"
console.log(foo)
//salida> Default string
const foo = "asd" ?? "Default string"
console.log(foo)
//salida> asd
?.