Quiz: ¿Conoces JavaScript moderno?
¡Demuestra tu dominio de JavaScript!
¿Conoces la diferencia entre ES2015 y ES2022?
- ¡Demuestra tu dominio de JavaScript! 🚀
- No se requiere iniciar sesión ni registrarse. ✨
- Preguntas de opción múltiple. 🤖 … ¿Qué tan difícil puede ser, no?
¿Cuál es la salida del siguiente código?
const a = 42n;const result = a * 2n;console.log(result);Los valores BigInt se crean añadiendo n a un número. No puedes mezclar BigInt con números normales en operaciones aritméticas. Aquí, ambos valores son BigInt, así que la multiplicación funciona, resultando en 84n.
Observa el sufijo n en ambos operandos: comparten el mismo tipo numérico.
¿Qué muestra esto?
const modulePromise = import('./myModule.js');console.log(typeof modulePromise);La función import() devuelve una Promise que se resuelve al objeto del módulo. Como las instancias de Promise son objetos, typeof modulePromise muestra 'object'.
La importación es asíncrona. Distingue el objeto que devuelve inmediatamente del módulo que entrega después.
¿Cuál será el resultado del siguiente código?
const promises = [ Promise.resolve('success'), Promise.reject('error')];Promise.allSettled(promises).then(results => { console.log(results[0].status + ': ' + results[0].value);});Promise.allSettled devuelve un array de objetos que describen el resultado de cada promesa. La primera promesa está fulfilled con el valor 'success', por lo que la instrucción de registro imprimirá fulfilled: success.
El índice cero corresponde a la primera promesa de entrada. Conserva literalmente su estado y su valor al formar la salida.
¿Qué devuelve str.matchAll()?
const str = 'foo1bar2baz3';const matches = str.matchAll(/\d/g);String.matchAll devuelve un iterador de coincidencias, no un arreglo. Este iterador puede usarse para obtener todos los grupos coincidentes de una cadena.
matchAll permite consumir coincidencias una a una; no entrega directamente un array.
¿Qué representa import.meta.url?
console.log(import.meta.url);import.meta es un objeto que contiene metadatos sobre el módulo actual. La propiedad import.meta.url representa la URL del módulo actual, lo que permite obtener información sobre dónde se está ejecutando el script.
import.meta describe el módulo en el que aparece, no el lugar que lo importó.
¿Qué proporciona WeakRef?
const obj = { data: 'important' };const ref = new WeakRef(obj);console.log(ref.deref());WeakRef proporciona una referencia débil a un objeto, lo que permite que el objeto sea recolectado por el garbage collector si no existen otras referencias. Como obj sigue estando fuertemente referenciado aquí, deref() devuelve el objeto original. Si el objetivo hubiera sido reclamado, deref() devolvería undefined.
En este ejemplo el objeto aún tiene una referencia fuerte; la referencia débil puede recuperarlo.
