","jawda_a_correct":"yes","jawda_a_points":"1"},{"jawda_a_text":"Aunque esta es una forma fiable de comprobar si algo es un objeto, la sorprendente trampa en JavaScript es que también se considera un objeto.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"Esta es una práctica cada vez más común, empleada por muchas bibliotecas populares de JavaScript (jQuery, Node.js, etc.).","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"La respuesta corta y más importante aquí es que es una forma de aplicar voluntariamente un análisis y manejo de errores más estrictos en tu código JavaScript en tiempo de ejecución.","jawda_a_correct":"","jawda_a_points":"1"}]},{"jawda_q_text":"¿Cuál es el tipo de datos de las variables en JavaScript?","jawda_q_image":"","jawda_q_type":"single","jawda_q_explanation":"En JavaScript, las variables son de tipo dinámico, lo que significa que su tipo de datos se determina en tiempo de ejecución en función del valor que contienen. Esto permite que una sola variable contenga diferentes tipos de valores a lo largo de su ciclo de vida.","jawda_q_answers":[{"jawda_a_text":"Las variables de JavaScript son de tipo dinámico, lo que significa que su tipo de datos se determina en tiempo de ejecución en función del valor que contienen.","jawda_a_correct":"yes","jawda_a_points":"1"},{"jawda_a_text":"Todas las variables en JavaScript son tipos de datos de objeto.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"Las variables en JavaScript son siempre tipos de datos de cadena.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"Las variables en JavaScript son siempre tipos de datos numéricos.","jawda_a_correct":"","jawda_a_points":"1"}]},{"jawda_q_text":"¿Cuál es la diferencia entre un cuadro de alerta y un cuadro de confirmación?","jawda_q_image":"","jawda_q_type":"single","jawda_q_explanation":"Un cuadro de alerta se utiliza para mostrar un mensaje al usuario y solo proporciona un botón 'Aceptar' para cerrarlo. Un cuadro de confirmación, por otro lado, presenta un mensaje junto con los botones 'Aceptar' y 'Cancelar', lo que permite al usuario tomar una decisión que puede ser capturada por el programa.","jawda_q_answers":[{"jawda_a_text":"Un cuadro de alerta muestra solo un botón, que es el botón Aceptar, mientras que un cuadro de confirmación muestra los botones Aceptar y Cancelar.","jawda_a_correct":"yes","jawda_a_points":"1"},{"jawda_a_text":"Un cuadro de alerta permite la entrada del usuario, mientras que un cuadro de confirmación no.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"Un cuadro de confirmación se utiliza para mostrar errores y un cuadro de alerta es para advertencias.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"No hay diferencia funcional; solo tienen estilos diferentes.","jawda_a_correct":"","jawda_a_points":"1"}]},{"jawda_q_text":"¿Qué son los caracteres de escape en JavaScript?","jawda_q_image":"","jawda_q_type":"single","jawda_q_explanation":"Los caracteres de escape, denotados por una barra invertida (), se utilizan en JavaScript para representar caracteres especiales dentro de cadenas que de otro modo se interpretarían literalmente o causarían errores de sintaxis, como comillas simples, comillas dobles o saltos de línea.","jawda_q_answers":[{"jawda_a_text":"Los caracteres de escape (precedidos por una barra invertida) se utilizan para representar caracteres especiales dentro de cadenas, como comillas simples, comillas dobles o saltos de línea.","jawda_a_correct":"yes","jawda_a_points":"1"},{"jawda_a_text":"Los caracteres de escape se utilizan para salir de bucles en JavaScript.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"Los caracteres de escape son una forma de definir variables globales.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"Los caracteres de escape se utilizan para comentar bloques de código.","jawda_a_correct":"","jawda_a_points":"1"}]},{"jawda_q_text":"¿JavaScript tiene un alcance a nivel de concepto?","jawda_q_image":"","jawda_q_type":"single","jawda_q_explanation":"JavaScript utiliza principalmente el alcance de función (para `var`) y el alcance de bloque (para `let` y `const`). El término 'alcance a nivel de concepto' no es un modelo de alcance estándar o reconocido en JavaScript; en cambio, el alcance se define por funciones o bloques.","jawda_q_answers":[{"jawda_a_text":"No, JavaScript no tiene un alcance a nivel de concepto; utiliza principalmente el alcance de función y el alcance de bloque.","jawda_a_correct":"yes","jawda_a_points":"1"},{"jawda_a_text":"Sí, JavaScript tiene un alcance a nivel de concepto, que es similar al alcance global.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"Solo las versiones modernas de JavaScript tienen un alcance a nivel de concepto.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"El alcance a nivel de concepto es otro nombre para el alcance léxico en JavaScript.","jawda_a_correct":"","jawda_a_points":"1"}]},{"jawda_q_text":"¿Cuáles son las desventajas de usar innerHTML en JavaScript?","jawda_q_image":"","jawda_q_type":"single","jawda_q_explanation":"El uso de `innerHTML` puede conllevar varias desventajas, incluyendo vulnerabilidades de seguridad (ataques XSS), problemas de rendimiento debido al re-análisis y re-renderizado de todo el contenido, y la pérdida de los manejadores de eventos existentes en los elementos que son reemplazados.","jawda_q_answers":[{"jawda_a_text":"Las desventajas incluyen riesgos de seguridad (XSS), sobrecarga de rendimiento debido al re-análisis y la pérdida de los manejadores de eventos existentes en los elementos reemplazados.","jawda_a_correct":"yes","jawda_a_points":"1"},{"jawda_a_text":"Hace que el código se ejecute más rápido y es más seguro que otros métodos de manipulación del DOM.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"Solo funciona con contenido HTML estático y no se puede usar para actualizaciones dinámicas.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"Escapa automáticamente todos los caracteres especiales, evitando cualquier problema de seguridad.","jawda_a_correct":"","jawda_a_points":"1"}]},{"jawda_q_text":"¿Para qué se utilizan las declaraciones 'break' y 'continue' en JavaScript?","jawda_q_image":"","jawda_q_type":"single","jawda_q_explanation":"La declaración 'break' se utiliza para terminar un bucle o una declaración switch, mientras que la declaración 'continue' salta la iteración actual de un bucle y procede a la siguiente.","jawda_q_answers":[{"jawda_a_text":"Se utilizan para comprobar si una variable es un objeto.","jawda_a_correct":"yes","jawda_a_points":"1"},{"jawda_a_text":"Son prácticas empleadas por las bibliotecas de JavaScript para la optimización del código.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"Aplican un análisis y manejo de errores más estrictos en tiempo de ejecución.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"La declaración 'break' sale del bucle actual, y 'continue' salta a la siguiente iteración.","jawda_a_correct":"","jawda_a_points":"1"}]},{"jawda_q_text":"¿Cuáles son los dos grupos básicos de tipos de datos en JavaScript?","jawda_q_image":"","jawda_q_type":"single","jawda_q_explanation":"Los tipos de datos de JavaScript se categorizan ampliamente en tipos primitivos (como number, string, boolean, null, undefined, symbol, bigint) y tipos no primitivos (o de referencia) (como objects, arrays y functions).","jawda_q_answers":[{"jawda_a_text":"Aunque 'typeof' es una forma fiable de comprobar si algo es un objeto, la sorprendente trampa en JavaScript es que 'null' también se considera un objeto.","jawda_a_correct":"yes","jawda_a_points":"1"},{"jawda_a_text":"Tipos primitivos (por ejemplo, number, string, boolean, null, undefined, symbol, bigint) y tipos no primitivos/de referencia (por ejemplo, objects, arrays, functions).","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"Esta es una práctica cada vez más común, empleada por muchas bibliotecas populares de JavaScript (jQuery, Node.js, etc.).","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"La respuesta corta y más importante aquí es que 'use strict' es una forma de aplicar voluntariamente un análisis y manejo de errores más estrictos en su código JavaScript en tiempo de ejecución.","jawda_a_correct":"","jawda_a_points":"1"}]},{"jawda_q_text":"¿Cuál es el uso del operador 'typeof' en JavaScript?","jawda_q_image":"","jawda_q_type":"single","jawda_q_explanation":"El operador 'typeof' es un operador unario que devuelve una cadena que indica el tipo de su operando no evaluado. Aunque generalmente funciona bien, una peculiaridad conocida es que devuelve 'object' para 'null'.","jawda_q_answers":[{"jawda_a_text":"Se utiliza para comprobar si una variable es un objeto, pero identifica incorrectamente 'null' como un objeto.","jawda_a_correct":"yes","jawda_a_points":"1"},{"jawda_a_text":"El operador 'typeof' se utiliza para devolver una descripción en cadena del tipo de una variable.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"Es una práctica común empleada por muchas bibliotecas populares de JavaScript.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"Aplica un análisis y manejo de errores más estrictos en el código JavaScript en tiempo de ejecución.","jawda_a_correct":"","jawda_a_points":"1"}]},{"jawda_q_text":"¿Qué palabras clave se utilizan para manejar excepciones en JavaScript?","jawda_q_image":"","jawda_q_type":"single","jawda_q_explanation":"El bloque 'try...catch...finally' se utiliza para el manejo de excepciones en JavaScript, lo que le permite probar un bloque de código en busca de errores, manejarlos y ejecutar código independientemente del resultado.","jawda_q_answers":[{"jawda_a_text":"Aunque 'typeof' es una forma fiable de comprobar si algo es un objeto, la sorprendente trampa en JavaScript es que 'null' también se considera un objeto.","jawda_a_correct":"yes","jawda_a_points":"1"},{"jawda_a_text":"Esta es una práctica cada vez más común, empleada por muchas bibliotecas populares de JavaScript (jQuery, Node.js, etc.).","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"La respuesta corta y más importante aquí es que 'use strict' es una forma de aplicar voluntariamente un análisis y manejo de errores más estrictos en su código JavaScript en tiempo de ejecución.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"'try...catch...finally' se utiliza para manejar excepciones en JavaScript, donde 'try' contiene el código a monitorear, 'catch' maneja los errores y 'finally' ejecuta el código de limpieza.","jawda_a_correct":"","jawda_a_points":"1"}]},{"jawda_q_text":"¿Qué método se usa comúnmente para imprimir texto en la pantalla en un navegador web usando JavaScript?","jawda_q_image":"","jawda_q_type":"single","jawda_q_explanation":"El método 'document.write()' se utiliza para escribir contenido directamente en un documento HTML, lo que mostrará el texto en la pantalla. Aunque existen otros métodos (como console.log o la manipulación del DOM), document.write es una forma directa de enviar texto al documento.","jawda_q_answers":[{"jawda_a_text":"Aunque 'typeof' es una forma fiable de comprobar si algo es un objeto, la sorprendente trampa en JavaScript es que 'null' también se considera un objeto.","jawda_a_correct":"yes","jawda_a_points":"1"},{"jawda_a_text":"Esta es una práctica cada vez más común, empleada por muchas bibliotecas populares de JavaScript (jQuery, Node.js, etc.).","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"La respuesta corta y más importante aquí es que 'use strict' es una forma de aplicar voluntariamente un análisis y manejo de errores más estrictos en su código JavaScript en tiempo de ejecución.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"document.write('Welcome') se utiliza para imprimir el texto 'Welcome' en la pantalla dentro del documento HTML.","jawda_a_correct":"","jawda_a_points":"1"}]},{"jawda_q_text":"¿Cuál es el propósito de la función `blur()` en JavaScript?","jawda_q_image":"","jawda_q_type":"single","jawda_q_explanation":"La función `blur()` se utiliza para quitar el foco de un elemento HTML específico, a menudo un campo de entrada o un botón. Esto puede ser útil para interacciones de interfaz de usuario donde un elemento ya no debe estar activo.","jawda_q_answers":[{"jawda_a_text":"Es una forma fiable de comprobar si algo es un objeto, pero también considera nulo un objeto.","jawda_a_correct":"yes","jawda_a_points":"1"},{"jawda_a_text":"Es una práctica cada vez más común, empleada por muchas bibliotecas populares de JavaScript (jQuery, Node.js, etc.).","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"La función `blur()` se utiliza para eliminar el foco del objeto especificado.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"Es una forma de aplicar voluntariamente un análisis y manejo de errores más estrictos en su código JavaScript en tiempo de ejecución.","jawda_a_correct":"","jawda_a_points":"1"}]},{"jawda_q_text":"¿Cómo se puede identificar el sistema operativo de la máquina cliente usando JavaScript?","jawda_q_image":"","jawda_q_type":"single","jawda_q_explanation":"La propiedad `navigator.appVersion` proporciona información sobre el navegador y el sistema operativo. Aunque no siempre es precisa para las versiones modernas de SO, puede dar una indicación general del sistema operativo del cliente.","jawda_q_answers":[{"jawda_a_text":"La propiedad `navigator.appVersion` se utiliza para encontrar el nombre del sistema operativo en la máquina cliente.","jawda_a_correct":"yes","jawda_a_points":"1"},{"jawda_a_text":"Es una forma fiable de comprobar si algo es un objeto, pero también considera nulo un objeto.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"Esta es una práctica cada vez más común, empleada por muchas bibliotecas populares de JavaScript (jQuery, Node.js, etc.).","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"Es una forma de aplicar voluntariamente un análisis y manejo de errores más estrictos en su código JavaScript en tiempo de ejecución.","jawda_a_correct":"","jawda_a_points":"1"}]},{"jawda_q_text":"¿Cuáles son los diferentes tipos de errores que se encuentran comúnmente en JavaScript?","jawda_q_image":"","jawda_q_type":"single","jawda_q_explanation":"Los errores de JavaScript generalmente se pueden clasificar en errores de tiempo de carga (errores de sintaxis, problemas de red), errores de tiempo de ejecución (errores lógicos, errores de tipo) y errores lógicos (comportamiento incorrecto del programa). Comprender estas categorías ayuda en la depuración y el manejo de errores.","jawda_q_answers":[{"jawda_a_text":"Es una forma fiable de comprobar si algo es un objeto, pero también considera nulo un objeto.","jawda_a_correct":"yes","jawda_a_points":"1"},{"jawda_a_text":"Existen tres tipos principales de errores: errores de tiempo de carga (por ejemplo, errores de sintaxis), errores de tiempo de ejecución (por ejemplo, errores lógicos) y errores lógicos (comportamiento incorrecto del programa).","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"Esta es una práctica cada vez más común, empleada por muchas bibliotecas populares de JavaScript (jQuery, Node.js, etc.).","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"Es una forma de aplicar voluntariamente un análisis y manejo de errores más estrictos en su código JavaScript en tiempo de ejecución.","jawda_a_correct":"","jawda_a_points":"1"}]},{"jawda_q_text":"¿Cuál es el uso del método `push()` en los arrays de JavaScript?","jawda_q_image":"","jawda_q_type":"single","jawda_q_explanation":"El método `push()` es un método fundamental de array que se utiliza para añadir uno o más elementos al final de un array. Modifica el array original y devuelve la nueva longitud del array.","jawda_q_answers":[{"jawda_a_text":"El método `push()` se utiliza para añadir o anexar uno o más elementos al final de un Array.","jawda_a_correct":"yes","jawda_a_points":"1"},{"jawda_a_text":"Es una forma fiable de comprobar si algo es un objeto, pero también considera nulo un objeto.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"Esta es una práctica cada vez más común, empleada por muchas bibliotecas populares de JavaScript (jQuery, Node.js, etc.).","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"Es una forma de aplicar voluntariamente un análisis y manejo de errores más estrictos en su código JavaScript en tiempo de ejecución.","jawda_a_correct":"","jawda_a_points":"1"}]},{"jawda_q_text":"¿Cuál es la principal diferencia entre JavaScript y JScript?","jawda_q_image":"","jawda_q_type":"single","jawda_q_explanation":"JavaScript fue desarrollado originalmente por Netscape, mientras que JScript fue la implementación de Microsoft del estándar ECMAScript. Ambos se basan en la misma especificación de lenguaje central, pero fueron desarrollados por diferentes compañías.","jawda_q_answers":[{"jawda_a_text":"Es una forma fiable de comprobar si algo es un objeto, pero también considera nulo un objeto.","jawda_a_correct":"yes","jawda_a_points":"1"},{"jawda_a_text":"Esta es una práctica cada vez más común, empleada por muchas bibliotecas populares de JavaScript (jQuery, Node.js, etc.).","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"Es una forma de aplicar voluntariamente un análisis y manejo de errores más estrictos en su código JavaScript en tiempo de ejecución.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"Ambos son casi similares, pero JavaScript fue desarrollado por Netscape y JScript fue desarrollado por Microsoft.","jawda_a_correct":"","jawda_a_points":"1"}]},{"jawda_q_text":"¿Cómo se asignan las propiedades de los objetos en JavaScript?","jawda_q_image":"","jawda_q_type":"single","jawda_q_explanation":"Las propiedades de los objetos se pueden asignar usando la notación de punto (obj.property = value) o la notación de corchetes (obj['property'] = value). Ambos métodos se usan comúnmente dependiendo del nombre de la propiedad y el contexto.","jawda_q_answers":[{"jawda_a_text":"Las propiedades se asignan a los objetos usando la notación de punto (por ejemplo, obj.property = 12) o la notación de corchetes (por ejemplo, obj['property'] = 12).","jawda_a_correct":"yes","jawda_a_points":"1"},{"jawda_a_text":"Las propiedades se asignan usando la palabra clave 'assignProperty'.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"Las propiedades solo se pueden asignar durante la creación del objeto.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"Las propiedades se asignan usando un método especial 'set'.","jawda_a_correct":"","jawda_a_points":"1"}]},{"jawda_q_text":"¿Qué es el 'Modo Estricto' en JavaScript y cómo se puede habilitar?","jawda_q_image":"","jawda_q_type":"single","jawda_q_explanation":"El Modo Estricto es una forma de aplicar voluntariamente un análisis y manejo de errores más estrictos en su código JavaScript en tiempo de ejecución, lo que ayuda a escribir código más seguro y robusto. Se puede habilitar añadiendo 'use strict'; al principio de un script o una función.","jawda_q_answers":[{"jawda_a_text":"El Modo Estricto es una forma de aplicar voluntariamente un análisis y manejo de errores más estrictos en su código JavaScript en tiempo de ejecución, habilitado añadiendo 'use strict'; al principio de un script o función.","jawda_a_correct":"yes","jawda_a_points":"1"},{"jawda_a_text":"El Modo Estricto añade ciertas compulsiones a JavaScript, haciéndolo menos flexible.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"El Modo Estricto está habilitado por defecto en todos los navegadores modernos.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"El Modo Estricto se utiliza principalmente para optimizar el rendimiento del código.","jawda_a_correct":"","jawda_a_points":"1"}]},{"jawda_q_text":"¿Cómo se obtiene el estado de una casilla de verificación en JavaScript?","jawda_q_image":"","jawda_q_type":"single","jawda_q_explanation":"Para obtener el estado de una casilla de verificación, puede acceder a su propiedad 'checked'. Esta propiedad devuelve 'true' si la casilla está marcada y 'false' si no lo está.","jawda_q_answers":[{"jawda_a_text":"El estado se puede obtener usando `document.getElementById('checkbox1').checked`, que devuelve `true` si está marcado.","jawda_a_correct":"yes","jawda_a_points":"1"},{"jawda_a_text":"El estado se puede obtener usando `document.getElementById('checkbox1').value;`","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"El estado se puede obtener usando `document.getElementById('checkbox1').status;`","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"El estado se puede obtener usando `document.getElementById('checkbox1').getAttribute('checked');`","jawda_a_correct":"","jawda_a_points":"1"}]},{"jawda_q_text":"¿Cómo se puede detectar el sistema operativo (SO) de la máquina cliente usando JavaScript?","jawda_q_image":"","jawda_q_type":"single","jawda_q_explanation":"La cadena 'navigator.appVersion' se puede usar para detectar el sistema operativo en la máquina cliente, ya que a menudo contiene información sobre el SO. Sin embargo, es importante tener en cuenta que este método no siempre es fiable o preciso debido a la suplantación del agente de usuario o a las variaciones en las implementaciones del navegador.","jawda_q_answers":[{"jawda_a_text":"La cadena `navigator.appVersion` se puede usar para detectar el sistema operativo en la máquina cliente.","jawda_a_correct":"yes","jawda_a_points":"1"},{"jawda_a_text":"La propiedad `window.os` proporciona acceso directo al SO del cliente.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"JavaScript tiene una función incorporada llamada `getClientOS()` para este propósito.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"La propiedad `document.platform` se usa para detectar el SO del cliente.","jawda_a_correct":"","jawda_a_points":"1"}]},{"jawda_q_text":"¿Cuál es la diferencia entre `window.onload` y `onDocumentReady`?","jawda_q_image":"","jawda_q_type":"single","jawda_q_explanation":"El evento 'window.onload' se dispara cuando toda la página se ha cargado, incluyendo todas las imágenes, scripts y otros recursos. En contraste, 'onDocumentReady' (a menudo asociado con bibliotecas como $(document).ready() de jQuery) se dispara tan pronto como el DOM está listo, lo que significa que la estructura HTML está analizada y disponible, incluso si las imágenes u otros recursos externos aún se están cargando.","jawda_q_answers":[{"jawda_a_text":"`window.onload` se dispara después de que se cargan todos los recursos de la página (incluidas las imágenes), mientras que `onDocumentReady` se dispara cuando el DOM está analizado y listo.","jawda_a_correct":"yes","jawda_a_points":"1"},{"jawda_a_text":"`window.onload` es un evento específico de jQuery, mientras que `onDocumentReady` es JavaScript nativo.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"Tanto `window.onload` como `onDocumentReady` tienen exactamente el mismo propósito y se disparan al mismo tiempo.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"`onDocumentReady` está obsoleto y ya no debería usarse.","jawda_a_correct":"","jawda_a_points":"1"}]},{"jawda_q_text":"¿Cómo funcionan los cierres (closures) en JavaScript?","jawda_q_image":"","jawda_q_type":"single","jawda_q_explanation":"Un cierre permite que una función acceda a variables de su ámbito exterior incluso después de que la función exterior haya terminado de ejecutarse. Esto se debe a que la función interna 'recuerda' el entorno en el que fue creada.","jawda_q_answers":[{"jawda_a_text":"Un cierre es una variable declarada localmente relacionada con una función que permanece en la memoria cuando esta ha retornado.","jawda_a_correct":"yes","jawda_a_points":"1"},{"jawda_a_text":"Un cierre es un tipo de objeto que almacena pares clave-valor.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"Los cierres se utilizan para evitar la contaminación de variables globales.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"Los cierres son una forma de aplicar un análisis estricto y manejo de errores en JavaScript.","jawda_a_correct":"","jawda_a_points":"1"}]},{"jawda_q_text":"¿Cómo se puede añadir un valor a un array en JavaScript?","jawda_q_image":"","jawda_q_type":"single","jawda_q_explanation":"El método 'push()' es la forma estándar de añadir uno o más elementos al final de un array y devuelve la nueva longitud del array.","jawda_q_answers":[{"jawda_a_text":"Se puede añadir un valor a un array usando el método 'push()', por ejemplo: `myArray.push(value);`","jawda_a_correct":"yes","jawda_a_points":"1"},{"jawda_a_text":"Los valores se añaden usando el método `array.add(value)`.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"El método `array.insert(value)` se usa para añadir valores.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"La adición de valores se realiza asignando directamente al siguiente índice, por ejemplo, `myArray[myArray.length] = value;`","jawda_a_correct":"","jawda_a_points":"1"}]},{"jawda_q_text":"¿Cuáles son las propiedades importantes de una función anónima en JavaScript?","jawda_q_image":"","jawda_q_type":"single","jawda_q_explanation":"Una función anónima es una función que no tiene nombre. A menudo se utiliza como argumento para otras funciones o como una expresión de función invocada inmediatamente (IIFE).","jawda_q_answers":[{"jawda_a_text":"Una función que se declara sin ningún identificador de nombre se conoce como función anónima.","jawda_a_correct":"yes","jawda_a_points":"1"},{"jawda_a_text":"Las funciones anónimas siempre tienen un ámbito global.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"Solo pueden usarse como manejadores de eventos.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"Las funciones anónimas no pueden acceder a variables de su ámbito exterior.","jawda_a_correct":"","jawda_a_points":"1"}]},{"jawda_q_text":"¿Cuál es la diferencia entre .call() y .apply() en JavaScript?","jawda_q_image":"","jawda_q_type":"single","jawda_q_explanation":"Tanto `.call()` como `.apply()` se utilizan para invocar una función con un valor `this` y argumentos especificados. La diferencia clave es cómo manejan los argumentos: `.call()` acepta argumentos individualmente, mientras que `.apply()` acepta argumentos como un array.","jawda_q_answers":[{"jawda_a_text":"Las funciones .call() y .apply() son muy similares en su uso, pero .call() toma los argumentos individualmente, mientras que .apply() toma los argumentos como un array.","jawda_a_correct":"yes","jawda_a_points":"1"},{"jawda_a_text":".call() se usa para operaciones síncronas, mientras que .apply() es para operaciones asíncronas.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":".apply() puede cambiar el contexto 'this', pero .call() no.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"No hay diferencia funcional; son intercambiables.","jawda_a_correct":"","jawda_a_points":"1"}]},{"jawda_q_text":"¿JavaScript distingue entre mayúsculas y minúsculas? Proporcione un ejemplo.","jawda_q_image":"","jawda_q_type":"single","jawda_q_explanation":"JavaScript sí distingue entre mayúsculas y minúsculas, lo que significa que 'variableName' y 'variablename' se tratan como dos identificadores distintos. Esto se aplica a palabras clave, variables, nombres de funciones y otros identificadores.","jawda_q_answers":[{"jawda_a_text":"Sí, JavaScript distingue entre mayúsculas y minúsculas. Por ejemplo, 'myVariable' y 'myvariable' se tratarían como dos variables diferentes.","jawda_a_correct":"yes","jawda_a_points":"1"},{"jawda_a_text":"No, JavaScript no distingue entre mayúsculas y minúsculas, por lo que 'myVariable' y 'myvariable' se refieren a lo mismo.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"JavaScript solo distingue entre mayúsculas y minúsculas para las palabras clave, no para los nombres de las variables.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"La distinción entre mayúsculas y minúsculas en JavaScript depende del navegador utilizado.","jawda_a_correct":"","jawda_a_points":"1"}]},{"jawda_q_text":"¿Cómo se puede apuntar a un marco específico desde un hipervínculo en JavaScript?","jawda_q_image":"","jawda_q_type":"single","jawda_q_explanation":"Para apuntar a un marco específico desde un hipervínculo, se utiliza el atributo 'target' en el hipervínculo y se establece su valor al nombre del marco deseado. Esta es una característica estándar de HTML, no un método directo de JavaScript para apuntar a marcos.","jawda_q_answers":[{"jawda_a_text":"Esto se puede hacer incluyendo el nombre del marco requerido en el hipervínculo usando el atributo 'target'.","jawda_a_correct":"yes","jawda_a_points":"1"},{"jawda_a_text":"Usando la propiedad 'frameName' del objeto window.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"A través de una función de JavaScript que establece dinámicamente el ID del marco.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"JavaScript no admite apuntar a marcos específicos directamente desde hipervínculos.","jawda_a_correct":"","jawda_a_points":"1"}]},{"jawda_q_text":"¿Cuál es la diferencia clave entre un \"web garden\" y un \"web farm\"?","jawda_q_image":"","jawda_q_type":"single","jawda_q_explanation":"Un \"web garden\" implica múltiples procesos de trabajo ejecutándose en un solo servidor para manejar solicitudes, mientras que un \"web farm\" distribuye la carga de trabajo entre múltiples servidores distintos. Ambas son estrategias para escalar aplicaciones web, pero difieren en su enfoque arquitectónico.","jawda_q_answers":[{"jawda_a_text":"Un \"web garden\" utiliza múltiples procesos de trabajo en un solo servidor, mientras que un \"web farm\" utiliza múltiples servidores.","jawda_a_correct":"yes","jawda_a_points":"1"},{"jawda_a_text":"Un \"web garden\" es para contenido estático y un \"web farm\" es para contenido dinámico.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"Un \"web garden\" es una tecnología obsoleta, mientras que un \"web farm\" es actual.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"No hay una diferencia significativa; los términos son intercambiables.","jawda_a_correct":"","jawda_a_points":"1"}]},{"jawda_q_text":"¿Cuál es el método para leer y escribir archivos en JavaScript del lado del cliente?","jawda_q_image":"","jawda_q_type":"single","jawda_q_explanation":"El JavaScript estándar del lado del cliente en los navegadores no admite directamente el acceso al sistema de archivos por razones de seguridad, lo que impide que las páginas web lean o escriban arbitrariamente archivos en la máquina local de un usuario. Sin embargo, JavaScript del lado del servidor (como Node.js) o APIs específicas del navegador (como la API de acceso al sistema de archivos con permiso del usuario) pueden proporcionar capacidades de E/S de archivos.","jawda_q_answers":[{"jawda_a_text":"JavaScript del lado del cliente no puede leer ni escribir archivos directamente en el sistema del usuario debido a restricciones de seguridad.","jawda_a_correct":"yes","jawda_a_points":"1"},{"jawda_a_text":"Usando los objetos 'FileReader' y 'FileWriter' directamente en el navegador.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"A través de la 'File System Access API' que es universalmente compatible con todos los navegadores.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"Mediante el uso de extensiones de JavaScript (por ejemplo, en Node.js con el módulo 'fs') o APIs específicas del navegador (como la API de acceso al sistema de archivos con permiso del usuario).","jawda_a_correct":"","jawda_a_points":"1"}]},{"jawda_q_text":"¿Cómo se utiliza el DOM en JavaScript?","jawda_q_image":"","jawda_q_type":"single","jawda_q_explanation":"El DOM (Document Object Model) representa la estructura de la página como un árbol de objetos, permitiendo a JavaScript acceder y manipular dinámicamente el contenido, la estructura y los estilos de HTML y XML. Esto permite experiencias web interactivas al permitir que los scripts cambien la apariencia y el contenido de la página después de que se haya cargado.","jawda_q_answers":[{"jawda_a_text":"DOM significa Document Object Model y es responsable de cómo interactúan los diversos objetos en un documento, permitiendo a JavaScript manipular el contenido y la estructura de las páginas web.","jawda_a_correct":"yes","jawda_a_points":"1"},{"jawda_a_text":"DOM es una biblioteca de JavaScript para realizar solicitudes HTTP.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"DOM es una tecnología del lado del servidor para la gestión de bases de datos.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"DOM se utiliza para definir el estilo de las páginas web, similar a CSS.","jawda_a_correct":"","jawda_a_points":"1"}]},{"jawda_q_text":"¿Cómo se utilizan los manejadores de eventos en JavaScript?","jawda_q_image":"","jawda_q_type":"single","jawda_q_explanation":"Los manejadores de eventos son funciones de JavaScript que se ejecutan en respuesta a eventos específicos, como interacciones del usuario (clics, pulsaciones de teclas) o acciones del navegador (carga de página). Son fundamentales para crear experiencias web dinámicas e interactivas al permitir que los scripts reaccionen a la entrada del usuario y a los cambios en el entorno del navegador.","jawda_q_answers":[{"jawda_a_text":"Los manejadores de eventos son funciones de JavaScript que responden a eventos (como clics, pulsaciones de teclas, cargas de página) para hacer que las páginas web sean interactivas.","jawda_a_correct":"yes","jawda_a_points":"1"},{"jawda_a_text":"Los manejadores de eventos se utilizan para definir el diseño de los elementos HTML.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"Los manejadores de eventos son una forma de declarar variables en JavaScript.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"Los manejadores de eventos son principalmente para la validación de datos del lado del servidor.","jawda_a_correct":"","jawda_a_points":"1"}]},{"jawda_q_text":"¿Cuál es el papel de los scripts diferidos en JavaScript?","jawda_q_image":"","jawda_q_type":"single","jawda_q_explanation":"Los scripts diferidos permiten que el analizador HTML continúe procesando la página mientras el script se descarga. Luego, el script se ejecuta después de que el documento HTML ha sido completamente analizado, asegurando que el contenido de la página se renderice primero.","jawda_q_answers":[{"jawda_a_text":"El análisis del código HTML durante la carga de la página se pausa por defecto hasta que el script no ha terminado de ejecutarse.","jawda_a_correct":"yes","jawda_a_points":"1"},{"jawda_a_text":"Los scripts diferidos se ejecutan después de que el documento HTML ha sido completamente analizado, permitiendo que el navegador renderice el contenido de la página primero.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"Esta es una práctica cada vez más común, empleada por muchas bibliotecas populares de JavaScript (jQuery, Node.js, etc.).","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"La respuesta corta y más importante aquí es que es una forma de aplicar voluntariamente un análisis y manejo de errores más estrictos en su código JavaScript en tiempo de ejecución.","jawda_a_correct":"","jawda_a_points":"1"}]},{"jawda_q_text":"¿Cuáles son los diversos componentes funcionales en JavaScript?","jawda_q_image":"","jawda_q_type":"single","jawda_q_explanation":"En JavaScript, las funciones se consideran objetos de primera clase, lo que significa que pueden asignarse a variables, pasarse como argumentos y devolverse desde otras funciones. Esta característica es un aspecto central de la programación funcional en JavaScript.","jawda_q_answers":[{"jawda_a_text":"Los diferentes componentes funcionales en JavaScript son: Funciones de primera clase: Las funciones en JavaScript se utilizan como objetos de primera clase.","jawda_a_correct":"yes","jawda_a_points":"1"},{"jawda_a_text":"Aunque es una forma fiable de comprobar si es un objeto, ¡la sorprendente trampa en JavaScript es que también se considera un objeto!","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"Esta es una práctica cada vez más común, empleada por muchas bibliotecas populares de JavaScript (jQuery, Node.js, etc.).","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"La respuesta corta y más importante aquí es que es una forma de aplicar voluntariamente un análisis y manejo de errores más estrictos en su código JavaScript en tiempo de ejecución.","jawda_a_correct":"","jawda_a_points":"1"}]},{"jawda_q_text":"¿Cómo se manejan o muestran típicamente los errores en JavaScript?","jawda_q_image":"","jawda_q_type":"single","jawda_q_explanation":"Cuando JavaScript encuentra un error, normalmente proporciona un mensaje de error, a menudo mostrado en la consola del desarrollador del navegador, para ayudar a los desarrolladores a identificar y depurar problemas. Esta salida de la consola es crucial para la resolución de problemas.","jawda_q_answers":[{"jawda_a_text":"Aunque es una forma fiable de comprobar si es un objeto, ¡la sorprendente trampa en JavaScript es que también se considera un objeto!","jawda_a_correct":"yes","jawda_a_points":"1"},{"jawda_a_text":"Esta es una práctica cada vez más común, empleada por muchas bibliotecas populares de JavaScript (jQuery, Node.js, etc.).","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"La respuesta corta y más importante aquí es que es una forma de aplicar voluntariamente un análisis y manejo de errores más estrictos en su código JavaScript en tiempo de ejecución.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"JavaScript proporciona mensajes de error, a menudo visibles en la consola del desarrollador, cuando encuentra un error durante la ejecución.","jawda_a_correct":"","jawda_a_points":"1"}]},{"jawda_q_text":"¿Qué es el método unshift() en los arrays de JavaScript?","jawda_q_image":"","jawda_q_type":"single","jawda_q_explanation":"El método `unshift()` añade uno o más elementos al principio de un array y devuelve la nueva longitud del array, desplazando efectivamente los elementos existentes a índices superiores. Esto contrasta con `push()`, que añade elementos al final.","jawda_q_answers":[{"jawda_a_text":"Aunque es una forma fiable de comprobar si es un objeto, ¡la sorprendente trampa en JavaScript es que también se considera un objeto!","jawda_a_correct":"yes","jawda_a_points":"1"},{"jawda_a_text":"Esta es una práctica cada vez más común, empleada por muchas bibliotecas populares de JavaScript (jQuery, Node.js, etc.).","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"Este método añade uno o más elementos al principio de un array, de forma similar a como `push()` añade al final.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"La respuesta corta y más importante aquí es que es una forma de aplicar voluntariamente un análisis y manejo de errores más estrictos en su código JavaScript en tiempo de ejecución.","jawda_a_correct":"","jawda_a_points":"1"}]},{"jawda_q_text":"¿Para qué se utilizan las funciones unescape() y escape() en JavaScript?","jawda_q_image":"","jawda_q_type":"single","jawda_q_explanation":"La función `escape()` codifica una cadena, reemplazando ciertos caracteres con secuencias de escape hexadecimales, principalmente para transferir información a través de una red o en URLs. La función `unescape()` decodifica estas secuencias a su forma original.","jawda_q_answers":[{"jawda_a_text":"Aunque es una forma fiable de comprobar si es un objeto, ¡la sorprendente trampa en JavaScript es que también se considera un objeto!","jawda_a_correct":"yes","jawda_a_points":"1"},{"jawda_a_text":"La función `escape()` codifica una cadena para transferir información a través de una red, mientras que `unescape()` la decodifica.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"Esta es una práctica cada vez más común, empleada por muchas bibliotecas populares de JavaScript (jQuery, Node.js, etc.).","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"La respuesta corta y más importante aquí es que es una forma de aplicar voluntariamente un análisis y manejo de errores más estrictos en su código JavaScript en tiempo de ejecución.","jawda_a_correct":"","jawda_a_points":"1"}]},{"jawda_q_text":"¿Cuáles son los usos principales de `decodeURI()` y `encodeURI()`?","jawda_q_image":"","jawda_q_type":"single","jawda_q_explanation":"La función `encodeURI()` se utiliza para codificar una URI reemplazando ciertos caracteres con secuencias de escape que representan su codificación UTF-8. Por el contrario, `decodeURI()` decodifica una URI que fue previamente codificada por `encodeURI()` o una rutina similar, restaurando los caracteres originales.","jawda_q_answers":[{"jawda_a_text":"Se utilizan para comprobar si una variable es un objeto.","jawda_a_correct":"yes","jawda_a_points":"1"},{"jawda_a_text":"`encodeURI()` convierte una URL a su codificación hexadecimal, y `decodeURI()` revierte este proceso.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"Son prácticas comunes empleadas por bibliotecas populares de JavaScript.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"Codifican y decodifican identificadores de recursos uniformes (URI) para una transmisión e interpretación adecuadas.","jawda_a_correct":"","jawda_a_points":"1"}]},{"jawda_q_text":"¿Qué función deberías usar para codificar la siguiente URL: 'my test.asp?name=ståle&car=saab'?","jawda_q_image":"","jawda_q_type":"single","jawda_q_explanation":"La función `encodeURI()` es adecuada para codificar una URI completa, ya que no codifica caracteres como '?', '=', '&', que son esenciales para la estructura de la URI. Maneja correctamente caracteres especiales como 'å' y espacios, haciendo que la URL sea segura para la transmisión mientras preserva su integridad estructural.","jawda_q_answers":[{"jawda_a_text":"`encodeURI()`","jawda_a_correct":"yes","jawda_a_points":"1"},{"jawda_a_text":"`encodeURIComponent()`","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"`escape()`","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"`btoa()`","jawda_a_correct":"","jawda_a_points":"1"}]},{"jawda_q_text":"¿Qué declara la siguiente instrucción: `let arr = [[[]]]`?","jawda_q_image":"","jawda_q_type":"single","jawda_q_explanation":"La instrucción `let arr = [[[]]]` declara un array tridimensional en JavaScript. Inicializa `arr` como un array que contiene otro array, que a su vez contiene un array vacío, demostrando estructuras de arrays anidados.","jawda_q_answers":[{"jawda_a_text":"Declara un array unidimensional.","jawda_a_correct":"yes","jawda_a_points":"1"},{"jawda_a_text":"Declara un array tridimensional.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"Declara un objeto con propiedades anidadas.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"Declara una función que devuelve un array.","jawda_a_correct":"","jawda_a_points":"1"}]},{"jawda_q_text":"¿Cómo se relacionan JavaScript y ECMAScript?","jawda_q_image":"","jawda_q_type":"single","jawda_q_explanation":"ECMAScript es la especificación estandarizada que define las características principales y la sintaxis de un lenguaje de scripting. JavaScript es la implementación más popular y ampliamente utilizada del estándar ECMAScript, comúnmente utilizada para el desarrollo web.","jawda_q_answers":[{"jawda_a_text":"Son dos lenguajes de programación completamente separados y no relacionados.","jawda_a_correct":"yes","jawda_a_points":"1"},{"jawda_a_text":"ECMAScript es una biblioteca de JavaScript para características avanzadas.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"JavaScript es una versión anterior de ECMAScript.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"ECMAScript es la especificación, y JavaScript es una implementación de esa especificación.","jawda_a_correct":"","jawda_a_points":"1"}]},{"jawda_q_text":"¿Qué es el namespacing en JavaScript y cómo se utiliza?","jawda_q_image":"","jawda_q_type":"single","jawda_q_explanation":"El namespacing en JavaScript es una técnica utilizada para agrupar funcionalidades relacionadas (variables, funciones, objetos) bajo un nombre único, típicamente un objeto. Esto ayuda a evitar colisiones de nombres en el ámbito global y a organizar el código de manera más efectiva, especialmente en aplicaciones más grandes.","jawda_q_answers":[{"jawda_a_text":"Es un método para verificar el tipo de una variable.","jawda_a_correct":"yes","jawda_a_points":"1"},{"jawda_a_text":"El namespacing se utiliza para agrupar funciones, variables, etc., deseadas bajo un nombre único para evitar la contaminación del ámbito global.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"Es una práctica empleada por bibliotecas populares de JavaScript para la optimización del rendimiento.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"Es una forma de aplicar un análisis y manejo de errores más estrictos en JavaScript.","jawda_a_correct":"","jawda_a_points":"1"}]},{"jawda_q_text":"¿Cómo se puede ocultar el código JavaScript de navegadores antiguos que no lo soportan?","jawda_q_image":"","jawda_q_type":"single","jawda_q_explanation":"Para ocultar el código JavaScript de navegadores antiguos, puedes encerrar el script dentro de etiquetas de comentario HTML. Esto hace que los navegadores antiguos ignoren el bloque de script, mientras que los navegadores modernos seguirán ejecutando el JavaScript.","jawda_q_answers":[{"jawda_a_text":"Añade “” antes de la etiqueta de cierre .","jawda_a_correct":"yes","jawda_a_points":"1"},{"jawda_a_text":"Aunque 'typeof' es una forma fiable de comprobar si una variable es un objeto, la sorprendente trampa en JavaScript es que 'null' también se considera un objeto.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"Esta es una práctica cada vez más común, empleada por muchas bibliotecas populares de JavaScript (jQuery, Node.js, etc.).","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"La respuesta corta y más importante aquí es que 'use strict' es una forma de aplicar voluntariamente un análisis y manejo de errores más estrictos en tu código JavaScript en tiempo de ejecución.","jawda_a_correct":"","jawda_a_points":"1"}]},{"jawda_q_text":"¿Cómo se utilizan los bucles en JavaScript?","jawda_q_image":"","jawda_q_type":"single","jawda_q_explanation":"JavaScript proporciona varios tipos de bucles para iterar sobre colecciones de datos o ejecutar un bloque de código repetidamente. Los tipos principales incluyen los bucles 'for', 'while', 'do...while' y 'for...in'/'for...of'.","jawda_q_answers":[{"jawda_a_text":"Existen principalmente cuatro tipos de bucles en JavaScript: for, while, do...while y for...in/for...of.","jawda_a_correct":"yes","jawda_a_points":"1"},{"jawda_a_text":"Aunque 'typeof' es una forma fiable de comprobar si una variable es un objeto, la sorprendente trampa en JavaScript es que 'null' también se considera un objeto.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"Esta es una práctica cada vez más común, empleada por muchas bibliotecas populares de JavaScript (jQuery, Node.js, etc.).","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"La respuesta corta y más importante aquí es que 'use strict' es una forma de aplicar voluntariamente un análisis y manejo de errores más estrictos en tu código JavaScript en tiempo de ejecución.","jawda_a_correct":"","jawda_a_points":"1"}]},{"jawda_q_text":"¿Cuáles son los métodos importantes de los Arrays en JavaScript? Explica con un ejemplo.","jawda_q_image":"","jawda_q_type":"single","jawda_q_explanation":"El objeto Array en JavaScript viene con numerosos métodos y propiedades incorporados que simplifican la manipulación y gestión de arrays para los desarrolladores. Estos métodos permiten operaciones como añadir/eliminar elementos, ordenar, filtrar y mapear.","jawda_q_answers":[{"jawda_a_text":"El objeto Array tiene muchas propiedades y métodos (por ejemplo, push, pop, map, filter, reduce) que ayudan a los desarrolladores a manejar arrays de forma fácil y eficiente.","jawda_a_correct":"yes","jawda_a_points":"1"},{"jawda_a_text":"Aunque 'typeof' es una forma fiable de comprobar si una variable es un objeto, la sorprendente trampa en JavaScript es que 'null' también se considera un objeto.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"Esta es una práctica cada vez más común, empleada por muchas bibliotecas populares de JavaScript (jQuery, Node.js, etc.).","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"La respuesta corta y más importante aquí es que 'use strict' es una forma de aplicar voluntariamente un análisis y manejo de errores más estrictos en tu código JavaScript en tiempo de ejecución.","jawda_a_correct":"","jawda_a_points":"1"}]},{"jawda_q_text":"¿Qué es el concepto OOPS en JavaScript?","jawda_q_image":"","jawda_q_type":"single","jawda_q_explanation":"La Programación Orientada a Objetos (POO) en JavaScript permite estructurar el código utilizando objetos, clases y herencia, lo que ayuda a modelar situaciones de la vida real y a gestionar aplicaciones complejas de forma más eficaz que utilizando solo variables o arrays.","jawda_q_answers":[{"jawda_a_text":"Muchas veces, las variables o los arrays no son suficientes para simular situaciones de la vida real, por lo que se utilizan conceptos OOPS como objetos, clases y herencia.","jawda_a_correct":"yes","jawda_a_points":"1"},{"jawda_a_text":"Aunque 'typeof' es una forma fiable de comprobar si una variable es un objeto, la sorprendente trampa en JavaScript es que 'null' también se considera un objeto.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"Esta es una práctica cada vez más común, empleada por muchas bibliotecas populares de JavaScript (jQuery, Node.js, etc.).","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"La respuesta corta y más importante aquí es que 'use strict' es una forma de aplicar voluntariamente un análisis y manejo de errores más estrictos en tu código JavaScript en tiempo de ejecución.","jawda_a_correct":"","jawda_a_points":"1"}]},{"jawda_q_text":"¿Cómo se recorren las propiedades de un objeto en JavaScript?","jawda_q_image":"","jawda_q_type":"single","jawda_q_explanation":"El bucle 'for...in' está diseñado específicamente en JavaScript para iterar sobre las propiedades enumerables de un objeto, permitiendo acceder tanto a los nombres de las propiedades como a sus valores correspondientes.","jawda_q_answers":[{"jawda_a_text":"El bucle 'for...in' se utiliza normalmente para recorrer las propiedades de un objeto.","jawda_a_correct":"yes","jawda_a_points":"1"},{"jawda_a_text":"Aunque 'typeof' es una forma fiable de comprobar si una variable es un objeto, la sorprendente trampa en JavaScript es que 'null' también se considera un objeto.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"Esta es una práctica cada vez más común, empleada por muchas bibliotecas populares de JavaScript (jQuery, Node.js, etc.).","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"La respuesta corta y más importante aquí es que 'use strict' es una forma de aplicar voluntariamente un análisis y manejo de errores más estrictos en tu código JavaScript en tiempo de ejecución.","jawda_a_correct":"","jawda_a_points":"1"}]},{"jawda_q_text":"What is JavaScript Unit Testing, and what are its challenges?","jawda_q_image":"","jawda_q_type":"single","jawda_q_explanation":"JavaScript Unit Testing is a method where individual units or components of a web page or application's JavaScript code are tested in isolation. Challenges often include managing asynchronous operations, mocking dependencies, and ensuring comprehensive test coverage.","jawda_q_answers":[{"jawda_a_text":"JavaScript Unit Testing is a testing method in which JavaScript tests code written for a web page or web application module.","jawda_a_correct":"yes","jawda_a_points":"1"},{"jawda_a_text":"It is a reliable way of checking if a variable is an object, but 'null' is also considered an object.","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"It is an increasingly common practice, employed by many popular JavaScript libraries (jQuery, Node.js, etc.).","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"It is a way to voluntarily enforce stricter parsing and error handling on your JavaScript code at runtime.","jawda_a_correct":"","jawda_a_points":"1"}]},{"jawda_q_text":"What are some important JavaScript Unit Testing Frameworks?","jawda_q_image":"","jawda_q_type":"single","jawda_q_explanation":"Popular JavaScript Unit Testing Frameworks include Jest, Mocha, Jasmine, and QUnit. These frameworks provide tools and structures for writing, running, and organizing unit tests effectively.","jawda_q_answers":[{"jawda_a_text":"QUnit.js: It is known as an open-source assertion library running on browser and Node.js.","jawda_a_correct":"yes","jawda_a_points":"1"},{"jawda_a_text":"Although 'typeof null' is a reliable way of checking if a variable is an object, the surprising gotcha in JavaScript is that 'null' is also considered an object!","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"This is an increasingly common practice, employed by many popular JavaScript libraries (jQuery, Node.js, etc.).","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"The short and most important answer here is that 'use strict' is a way to voluntarily enforce stricter parsing and error handling on your JavaScript code at runtime.","jawda_a_correct":"","jawda_a_points":"1"}]},{"jawda_q_text":"What is the QuickSort Algorithm in JavaScript?","jawda_q_image":"","jawda_q_type":"single","jawda_q_explanation":"QuickSort is an efficient, comparison-based sorting algorithm that follows the Divide and Conquer approach. It works by selecting a 'pivot' element from the array and partitioning the other elements into two sub-arrays, according to whether they are less than or greater than the pivot.","jawda_q_answers":[{"jawda_a_text":"Quick Sort algorithm follows the Divide and Conquer approach.","jawda_a_correct":"yes","jawda_a_points":"1"},{"jawda_a_text":"Although 'typeof null' is a reliable way of checking if a variable is an object, the surprising gotcha in JavaScript is that 'null' is also considered an object!","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"This is an increasingly common practice, employed by many popular JavaScript libraries (jQuery, Node.js, etc.).","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"The short and most important answer here is that 'use strict' is a way to voluntarily enforce stricter parsing and error handling on your JavaScript code at runtime.","jawda_a_correct":"","jawda_a_points":"1"}]},{"jawda_q_text":"How do you use DOM and Events in JavaScript?","jawda_q_image":"","jawda_q_type":"single","jawda_q_explanation":"The Document Object Model (DOM) allows JavaScript to interact with the structure, style, and content of a web page. Events, such as clicks or key presses, enable JavaScript to respond to user interactions and dynamic changes on the page, making web applications interactive.","jawda_q_answers":[{"jawda_a_text":"Using DOM, JavaScript can perform multiple tasks, such as dynamically changing content, styles, and responding to user events.","jawda_a_correct":"yes","jawda_a_points":"1"},{"jawda_a_text":"Although 'typeof null' is a reliable way of checking if a variable is an object, the surprising gotcha in JavaScript is that 'null' is also considered an object!","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"This is an increasingly common practice, employed by many popular JavaScript libraries (jQuery, Node.js, etc.).","jawda_a_correct":"","jawda_a_points":"1"},{"jawda_a_text":"The short and most important answer here is that 'use strict' is a way to voluntarily enforce stricter parsing and error handling on your JavaScript code at runtime.","jawda_a_correct":"","jawda_a_points":"1"}]},{"jawda_q_text":"What is External JavaScript?","jawda_q_image":"","jawda_q_type":"single","jawda_q_explanation":"External JavaScript refers to JavaScript code written in a separate .js file and linked to an HTML document using the Skip to content
JJawda DesignsHerramientas gratuitas en línea
InicioTodas las herramientasCuestionariosDirectorio gratuito 545+Blog
Language:

Cuestionario de JavaScript: Eventos, Código y Propiedades

¡Desafía tus conocimientos de JavaScript! Este cuestionario evalúa tu comprensión de los eventos, la ejecución de código y las propiedades de los objetos con 30 preguntas aleatorias. Haz clic en 'Iniciar Cuestionario' para evaluar tu nivel de habilidad actual y obtener tu clasificación.

Cuestionario de JavaScript: Eventos, Código y Propiedades

Instantánea de Evaluación Rápida

  • Formato de Evaluación: Opción Múltiple
  • Preguntas por Intento: 30 (seleccionadas aleatoriamente de 136)
  • Tiempo Estimado: 5-10 minutos
  • Modo de Puntuación: Respuestas Correctas
  • Nivel de Habilidad Objetivo: Desarrolladores JavaScript de Nivel Principiante a Experto

Acerca del Cuestionario de JavaScript: Eventos, Código y Propiedades y Qué Evalúa

¡Bienvenido a la guía de estudio complementaria para el Cuestionario Interactivo de JavaScript: Eventos, Código y Propiedades que ves arriba! Esta evaluación está meticulosamente diseñada para evaluar tu comprensión práctica de conceptos fundamentales de JavaScript cruciales para el desarrollo web front-end. Ya seas un estudiante que busca autoevaluarse, un desarrollador que se prepara para exámenes de certificación o un candidato que perfecciona sus habilidades para entrevistas técnicas, este cuestionario identificará tus fortalezas y áreas de mejora en el manejo de eventos de JavaScript, la comprensión de los contextos de ejecución de código y la manipulación efectiva de las propiedades de los objetos.

Cómo Funciona el Cuestionario: Reglas, Puntuación y Reintentos

Cada vez que inicias el cuestionario, se seleccionan aleatoriamente 30 preguntas de un banco completo de 136 preguntas, lo que garantiza un nuevo desafío en cada intento. Encontrarás preguntas de opción múltiple y, al responder, recibirás comentarios inmediatos, incluidas explicaciones detalladas tanto para las respuestas correctas como para las incorrectas. Tu puntuación se calcula en función del número de respuestas correctas. No te preocupes si no lo apruebas en tu primer intento; puedes volver a realizar el cuestionario tantas veces como quieras para mejorar tu puntuación, explorar más preguntas del banco y consolidar tu comprensión.

Conceptos Clave Evaluados en Este Cuestionario (Guía de Estudio)

Para sobresalir en este cuestionario, concéntrate en estos principios fundamentales de JavaScript:

Manejo de Eventos y el Bucle de Eventos

  • Detectores de Eventos: Comprensión de addEventListener(), tipos de eventos (click, submit, keydown, load, etc.) y fases de eventos (captura, objetivo, burbujeo).
  • Objeto Evento: Propiedades como event.target, event.currentTarget, event.preventDefault() y event.stopPropagation().
  • JavaScript Asíncrono: Cómo el bucle de eventos, la cola de microtareas y la cola de macrotareas (por ejemplo, setTimeout, Promise) influyen en el orden de ejecución.

Ejecución de Código y Ámbito

  • Hoisting: Cómo se elevan var, let, const y las declaraciones de funciones.
  • Ámbito (Scope): Ámbito global, de función y de bloque (let/const).
  • Clausuras (Closures): Comprender cómo las funciones retienen acceso a su entorno léxico.
  • Palabra clave this: Contexto en llamadas globales, de función, de método, de constructor y de función flecha.
  • Modo Estricto (Strict Mode): Los beneficios e implicaciones de 'use strict'.

Propiedades y Tipos de Objetos

  • Tipos Primitivos vs. de Objeto: Diferencias clave y cómo se almacenan/pasan.
  • Coerción de Tipos: Conversiones de tipo implícitas (por ejemplo, == vs. ===).
  • Operador typeof: Sus usos y errores comunes (por ejemplo, typeof null).
  • Acceso a Propiedades de Objeto: Notación de punto vs. notación de corchetes.
  • Aritmética de Punto Flotante: Comprender los problemas de precisión (por ejemplo, 0.1 + 0.2).

Comparación de Conceptos Clave

```spanish
Concepto == (Igualdad Flexible) === (Igualdad Estricta)
Comparación Realiza una coerción de tipo antes de comparar valores. Compara valores y tipos sin coerción.
Ejemplo false == '0' es true false === '0' es false
Concepto var let const
Ámbito Ámbito de función Ámbito de bloque Ámbito de bloque
Hoisting Elevado e inicializado con undefined Elevado pero no inicializado (Zona Muerta Temporal) Elevado pero no inicializado (Zona Muerta Temporal)
Reasignación Sí Sí No (para valores primitivos)

Trampas Comunes y Escenarios Complicados en las Preguntas

Ten en cuenta estas trampas comunes que a menudo aparecen en las preguntas del cuestionario:
  • Coerción de Tipos: Las preguntas que involucran == pueden ser complicadas debido a las reglas de conversión automática de tipos de JavaScript. Siempre considera cómo los valores podrían ser convertidos antes de la comparación.
  • Orden de Ejecución Asíncrona: La interacción entre setTimeout, Promise.then() y el código síncrono regular puede llevar a salidas inesperadas en la consola. Comprende las colas de prioridad del bucle de eventos.
  • Contexto de this: El valor de this cambia según cómo se llama una función. Presta mucha atención a los patrones de invocación de funciones.
```
  • Precisión de punto flotante: JavaScript utiliza IEEE 754 para los números, lo que puede provocar pequeñas imprecisiones con la aritmética decimal (por ejemplo, 0.1 + 0.2 !== 0.3).
  • Claves de propiedades de objeto: Cuando los objetos se utilizan como claves en otros objetos, se convierten a cadenas ('[object Object]'), lo que puede provocar la sobrescritura de propiedades.
  • Inserción de punto y coma: Tenga en cuenta las reglas de inserción automática de punto y coma (ASI) de JavaScript, especialmente con las declaraciones return seguidas de una nueva línea.

Interpretación de la puntuación: qué significa su resultado

Su puntuación en el cuestionario proporciona una visión inmediata de su dominio de JavaScript:
Rango de puntuación Nivel de rango Qué significa y próximos pasos
0-45 puntos Principiante ¡Acaba de comenzar su viaje! Concéntrese en revisar la sintaxis básica de JavaScript, los tipos de variables y el manejo básico de eventos. Vuelva a visitar la sección 'Conceptos clave probados' e intente el cuestionario de nuevo.
46-135 puntos Intermedio Comprensión sólida, pero hay margen para crecer. Comprende los fundamentos, pero puede tener dificultades con temas avanzados como los cierres, el contexto this o los patrones asíncronos. Analice sus respuestas incorrectas y profundice en esas áreas específicas.
136 puntos Experto ¡Felicidades! Tiene una comprensión completa y matizada de los eventos de JavaScript, la ejecución de código y las propiedades. Está listo para abordar desafíos complejos y guiar a otros. ¡Siga practicando para mantener su ventaja!

Cómo sobresalir en el cuestionario y estrategia de reintento

Para maximizar su puntuación y dominar verdaderamente estos conceptos:
  1. Revise las explicaciones: Después de cada intento, lea atentamente las explicaciones de cada pregunta, especialmente las que respondió incorrectamente. Esta es su herramienta de aprendizaje más valiosa.
  2. Estudio Dirigido: Identifica los temas específicos donde cometes errores consistentemente y dedica tiempo de estudio adicional a esas áreas utilizando recursos externos o la sección de 'Conceptos Clave' anterior.
  3. Vuelve a Tomar Estratégicamente: Dado que las preguntas son aleatorias, volver a tomar el cuestionario te expondrá a diferentes escenarios del banco de preguntas, ayudándote a cubrir más terreno.
  4. Practica la Codificación: Aplica los conceptos aprendidos en ejercicios de codificación del mundo real. La experiencia práctica solidifica el conocimiento teórico.
  5. Desafía a tus Compañeros: Discute preguntas difíciles con otros desarrolladores. Explicar conceptos a otros es una forma poderosa de reforzar tu propia comprensión.
¿Listo para demostrar tu destreza en JavaScript? ¡Desplázate hacia arriba y haz clic en 'Iniciar Cuestionario' para comenzar tu evaluación!

Preguntas frecuentes

¿Cuántas preguntas tiene este cuestionario?
Cada intento del cuestionario presenta 30 preguntas, seleccionadas aleatoriamente de un banco total de 136 preguntas únicas.
¿Qué se considera una puntuación aprobatoria?
No hay una puntuación formal de 'aprobación', pero lograr 136 puntos (las 30 preguntas correctas) te otorga el rango de 'Experto', demostrando una comprensión exhaustiva de los temas.
¿Puedo volver a hacer este cuestionario si mi puntuación es baja?
¡Sí, por supuesto! Puedes volver a hacer el cuestionario tantas veces como quieras. Esto se recomienda para ayudarte a aprender de tus errores y a encontrar más preguntas del banco.
¿Se proporcionan explicaciones para las respuestas incorrectas?
Sí, después de cada pregunta, recibes retroalimentación inmediata, incluyendo explicaciones detalladas tanto para las respuestas correctas como para las incorrectas para ayudarte en tu aprendizaje.
¿Es este cuestionario adecuado para entrevistas técnicas o preparación de exámenes?
Sí, este cuestionario es una excelente herramienta para prepararse para entrevistas técnicas y exámenes de certificación, ya que cubre conceptos fundamentales y a menudo complicados de JavaScript.
¿Cómo se seleccionan las preguntas en cada intento?
Para cada intento del cuestionario, se seleccionan aleatoriamente 30 preguntas del banco completo de 136 preguntas, lo que garantiza una experiencia variada cada vez que juegues.

Cuestionarios relacionados