“JavaScript Preguntas Aleatorias (Serie A)”
Instrucciones: Elige la opción correcta.
1. ¿Cuál es el resultado de typeof null?
o a) "null"
o b) "undefined"
o c) "object"
o d) "number"
Respuesta: c) "object" (error histórico de JS).
2. ¿Qué imprime [Link](0.1 + 0.2 === 0.3)?
o a) true
o b) false
o c) undefined
o d) Error
Respuesta: b) false (por precisión de punto flotante).
3. ¿Cuál es la forma correcta de declarar una variable constante en ES6?
o a) var x = 5
o b) let x = 5
o c) const x = 5
o d) constant x = 5
Respuesta: c) const x = 5.
4. ¿Qué método convierte un JSON a objeto JavaScript?
o a) [Link]()
o b) [Link]()
o c) [Link]()
o d) [Link]()
Respuesta: b) [Link]().
5. ¿Qué imprime [Link]([] + [])?
o a) []
o b) "" (cadena vacía)
o c) 0
o d) NaN
Respuesta: b) "" (los arrays se convierten a string vacío y se
concatenan).
6. ¿Cuál es el resultado de 3 + "3"?
o a) 6
o b) "33"
o c) 33
o d) Error
Respuesta: b) "33" (coerción a string).
7. ¿Qué palabra clave se usa para manejar excepciones?
o a) try...catch
o b) throw...catch
o c) catch...try
o d) exception
Respuesta: a) try...catch.
8. ¿Qué hace [Link]()?
o a) Filtra elementos
o b) Reduce a un valor
o c) Crea un nuevo array transformando cada elemento
o d) Ordena el array
Respuesta: c) Crea un nuevo array transformando cada
elemento.
9. ¿Cómo se accede a la propiedad name de un objeto person?
o a) person->name
o b) person[name]
o c) [Link] o person['name']
o d) person::name
Respuesta: c) ambas son válidas.
10. ¿Qué es el hoisting en JavaScript?
o a) Mover las declaraciones al inicio del ámbito
o b) Mover el código al final
o c) Eliminar variables no usadas
o d) Optimizar bucles
Respuesta: a) Mover las declaraciones (var y function) al inicio
del ámbito.
“JavaScript Preguntas Aleatorias (Serie B)”
1. ¿Qué imprime [Link](typeof NaN)?
o a) "NaN"
o b) "number"
o c) "undefined"
o d) "object"
Respuesta: b) "number" (NaN es un número especial).
2. ¿Cuál es el resultado de "5" - 2?
o a) "52"
o b) 3
o c) NaN
o d) Error
Respuesta: b) 3 (coerción a número con el operador menos).
3. ¿Qué método elimina el último elemento de un array?
o a) shift()
o b) pop()
o c) push()
o d) slice()
Respuesta: b) pop().
4. ¿Para qué sirve setTimeout?
o a) Ejecutar código después de un retraso
o b) Ejecutar código cada cierto intervalo
o c) Detener la ejecución
o d) Ejecutar código síncrono
Respuesta: a) Ejecuta una función después de X milisegundos.
5. ¿Qué es una función flecha (arrow function)?
o a) function(){}
o b) () => {}
o c) =>() {}
o d) function => {}
Respuesta: b) () => {}.
6. ¿Qué imprime [Link](!!"false")?
o a) false
o b) true
o c) "false"
o d) undefined
Respuesta: b) true (cualquier string no vacío es truthy).
7. ¿Cómo se declara una clase en ES6?
o a) class Person {}
o b) function Person() {}
o c) object Person {}
o d) type Person {}
Respuesta: a) class Person {}.
8. ¿Qué hace [Link]()?
o a) Transforma elementos
o b) Filtra elementos según condición y devuelve nuevo array
o c) Elimina elementos del array original
o d) Revierte el array
Respuesta: b) Filtra y devuelve nuevo array con los que cumplen
la condición.
9. ¿Cuál es el ámbito de let en un bloque if?
o a) Global
o b) De función
o c) De bloque
o d) De script
Respuesta: c) De bloque (entre llaves {}).
10. ¿Qué método convierte un objeto a JSON?
o a) [Link]()
o b) [Link]()
o c) toJSON()
o d) [Link]()
Respuesta: b) [Link]().
“JavaScript Avanzado (Serie C)”
1. ¿Qué imprime [Link](1 < 2 < 3)?
o a) true
o b) false
o c) undefined
o d) Error
Respuesta: a) true (1<2 → true → 1<3 → true).
2. ¿Y [Link](3 > 2 > 1)?
o a) true
o b) false
o c) undefined
o d) Error
Respuesta: b) false (3>2 → true → 1>1 → false).
3. ¿Qué retorna [1,2,3].map(Number)?
o a) [1,2,3]
o b) ["1","2","3"]
o c) NaN
o d) Error
Respuesta: a) [1,2,3] (Number como función convierte cada
elemento).
4. ¿Cuál es la diferencia entre == y ===?
o a) Comparan valores sin/y con tipo
o b) Son iguales
o c) === compara solo valores
o d) == compara solo tipos
Respuesta: a) == permite coerción, === estricto (valor y tipo).
5. ¿Qué hace [Link]()?
o a) Congela el objeto (no se pueden añadir/modificar/eliminar
propiedades)
o b) Lo convierte a JSON
o c) Lo clona
o d) Lo elimina
Respuesta: a) Impide cualquier modificación del objeto.
6. ¿Qué imprime [Link]([...'hola'])?
o a) ['h','o','l','a']
o b) 'hola'
o c) ['hola']
o d) Error
Respuesta: a) Spread operator convierte string en array de
caracteres.
7. ¿Qué es un Proxy en JS?
o a) Un objeto que envuelve otro y permite interceptar operaciones
o b) Un servidor intermedio
o c) Un tipo de dato primitivo
o d) Un método de array
Respuesta: a) Proxy permite definir comportamientos
personalizados para operaciones fundamentales.
8. ¿Qué hace [Link]()?
o a) Espera que todas las promesas se resuelvan o una falle
o b) Espera la primera que se resuelva
o c) Cancela todas las promesas
o d) Convierte promesas a callbacks
Respuesta: a) Retorna una promesa que se resuelve cuando
todas lo hacen, o rechaza si alguna falla.
9. ¿Qué imprime [Link](typeof (() => {}))?
o a) "function"
o b) "object"
o c) "arrow"
o d) "undefined"
Respuesta: a) "function" (las arrow functions son funciones).
10. ¿Qué es el Event Loop?
o a) Un bucle que maneja la cola de eventos y tareas asíncronas
o b) Un bucle for
o c) Un evento de clic
o d) Un tipo de dato
Respuesta: a) Mecanismo que permite la concurrencia en JS.
11. ¿Qué hace setInterval?
o a) Ejecuta una función cada X milisegundos
o b) Ejecuta una función una sola vez tras X ms
o c) Detiene la ejecución
o d) Ejecuta síncronamente
Respuesta: a) Ejecuta repetidamente con el intervalo dado.
12. ¿Cómo se clona superficialmente un objeto en ES6+?
o a) [Link]({}, obj)
o b) {...obj}
o c) [Link]()
o d) a y b son correctas
Respuesta: d) Ambas son formas válidas de clonado superficial.
13. ¿Qué imprime [Link]([] == ![])?
o a) true
o b) false
o c) undefined
o d) Error
Respuesta: a) true (coerción: [] → 0, ![] → false → 0).
14. ¿Qué método detiene la propagación de un evento?
o a) [Link]()
o b) [Link]()
o c) [Link]
o d) [Link]()
Respuesta: a) Detiene la burbuja, la d) también pero es más
específica. La correcta es a).
15. ¿Qué es un Symbol en JS?
o a) Un valor único e inmutable usado como clave de propiedad
o b) Un string
o c) Un número
o d) Un booleano
Respuesta: a) Symbol es un tipo de dato primitivo único.
“JavaScript Avanzado (Serie D)”
1. ¿Qué retorna [Link]({a:1, b:2})?
o a) ['a','b']
o b) [1,2]
o c) {a:1, b:2}
o d) undefined
Respuesta: a) Devuelve un array con las claves del objeto.
2. ¿Qué hace [Link]()?
o a) Reduce el array a un solo valor aplicando una función
acumuladora
o b) Elimina elementos duplicados
o c) Ordena el array
o d) Invierte el array
Respuesta: a) Acumula cada elemento en un valor final.
3. ¿Qué imprime [Link](parseInt("10px"))?
o a) 10
o b) "10px"
o c) NaN
o d) Error
Respuesta: a) 10 (parseInt extrae el número hasta el primer no
dígito).
4. ¿Y parseInt("px10")?
o a) 10
o b) NaN
o c) 0
o d) Error
Respuesta: b) NaN (no comienza con número).
5. ¿Qué es un WeakMap?
o a) Un Map con claves débiles (objetos) que no impiden el garbage
collection
o b) Un Map con claves primitivas
o c) Un Map más rápido
o d) Un array asociativo
Respuesta: a) Las claves son objetos y se pueden recolectar si
no hay otras referencias.
6. ¿Qué hace [Link]()?
o a) Crea un array a partir de un iterable o array-like
o b) Convierte array a objeto
o c) Elimina elementos
o d) Clona un array
Respuesta: a) Convierte estructuras como NodeList o string a
array.
7. ¿Qué imprime [Link](+"42")?
o a) 42 (número)
o b) "42"
o c) NaN
o d) Error
Respuesta: a) El operador unario + convierte a número.
8. ¿Qué es la desestructuración en ES6?
o a) Extraer valores de arrays u objetos en variables
o b) Eliminar propiedades
o c) Destruir un objeto
o d) Un bucle
Respuesta: a) Permite asignación directa de propiedades a
variables.
9. ¿Cómo se hace una petición HTTP asíncrona en JS moderno?
o a) fetch()
o b) XMLHttpRequest
o c) $.ajax()
o d) Todas son válidas
Respuesta: d) fetch es nativo moderno, las otras también
funcionan.
10. ¿Qué hace await?
o a) Espera la resolución de una promesa
o b) Detiene todo el código
o c) Convierte promesa a callback
o d) Lanza un error
Respuesta: a) Pausa la ejecución de la función async hasta que
la promesa se resuelva.
11. ¿Qué imprime [Link](10 + "20")?
o a) 30
o b) "1020"
o c) 1020
o d) Error
Respuesta: b) "1020" (coerción a string con el operador +).
12. ¿Qué método convierte un array a string?
o a) toString()
o b) join()
o c) Ambas
o d) concat()
Respuesta: c) Ambas convierten a string, join permite separador.
13. ¿Qué es el this en una función flecha?
o a) Hereda el this del contexto léxico circundante
o b) Tiene su propio this
o c) Es undefined
o d) Es el objeto global
Respuesta: a) Las arrow functions no tienen su propio this,
toman el del exterior.
14. ¿Cómo se exporta un módulo en ES6?
o a) export default ...
o b) exports ...
o c) [Link] = ...
o d) a y b son correctas
Respuesta: a) export es la sintaxis ES6, aunque la c) es
CommonJS. La correcta es a).
15. ¿Qué imprime [Link](!!0)?
o a) true
o b) false
o c) 0
o d) undefined
Respuesta: b) false (0 es falsy, doble negación lo convierte a
booleano).