option
Cuestiones
ayuda
daypo
buscar.php

IISSI2 Segundo Parcial

COMENTARIOS ESTADÍSTICAS RÉCORDS
REALIZAR TEST
Título del Test:
IISSI2 Segundo Parcial

Descripción:
Preguntas inventadas para repasar 2parcial iissi2

Fecha de Creación: 2024/03/17

Categoría: Otros

Número Preguntas: 209

Valoración:(0)
COMPARTE EL TEST
Nuevo ComentarioNuevo Comentario
Comentarios
NO HAY REGISTROS
Temario:

¿Qué significa que JavaScript es single-threaded?. Que JavaScript solo puede ejecutar una línea de código a la vez. Que JavaScript puede ejecutar múltiples líneas de código al mismo tiempo. Que JavaScript solo puede ejecutar en un hilo especifico. Que JavaScript no puede ejecutar código asincrónico.

2. ¿Cuál es el motivo principal para utilizar programación asincrona en JavaScript?. Mejorar el rendimiento del código. Evitar bloquear la experiencia del usuario. Facilitar la depuración del código. Hacer el código más legible.

3. ¿Cuál es el uso principal de las funciones callback en la programación asíncrona de JavaScript?. Gestionar eventos. Realizar operaciones en segundo plano. Manipular variables y objetos. Ejecutar código en un orden específico.

4. ¿Cuál es la ventaja de utilizar async/await en JavaScript?. Permite ejecutar múltiples hilos de ejecución. Simplifica la escritura de código asíncrono. Aumenta la velocidad de ejecución del código. Facilita la comunicación entre diferentes módulos.

¿Cuál es la forma correcta de declarar una función async en JavaScript?. function async miFuncion() {}. miFuncion async function() {}. async function miFuncion() {}. function miFuncion) async {}.

6. ¿Qué se utiliza en JavaScript para esperar la respuesta de una APi en una función async?. then(). catch(). await. async.

7. ¿Qué función se utiliza para exportar e importar funciones y variables en los módulos de JavaScript?: export/import. require/exports. include/extend. import/export.

8. ¿Qué palabra clave se utiliza para activar el modo estricto en JavaScript?. use strict. strict mode. enable strict. strict enabled.

9. ¿Cuál es la carpeta recomendada para almacenar archivos JavaScript en una aplicación web?. /scripts. /is. /javascript. /assets.

10. ¿Cuál es la ventaja de utilizar let en lugar de var para declarar variables en JavaScript?. No hay diferencia entre let y var. let permite redeclarar variables. let tiene un alcance de bloque más imitado que var. var solo puede utilizarse en bucles for.

11. ¿Quáles la forma correcta de comentar una linea de código en JavaScript?. // Comentario. <!-- Comentario ->. /* Comentario */. * Comentario*.

12 ¿Qué método se utiliza para concatenar dos arrays en JavaScript?. join(). concat(). merge(). push().

13. ¿Cuál es la forma correcta de declarar un objeto vacio en JavaScript?. {}. []. (). //.

14. ¿Cuál es el resultado de la siguiente expresión en JavaScript: “5”+2. 7. “52”. "52undefined". "5undefined".

15. ¿Cuál es el método utilizado para redondear un número hacia abajo en JavaScript?. Math.floor(). Math.round(). Math.ceil(). Math.trunc().

16. ¿Cuál es el operador utilizado para comparar si dos valoresson iquales en valor y tipo en JavaScript?. ==. ==. =. !=.

¿Cuál es el método utilizado para convertir una cadena a minúsculas en JavaScript?. toUpperCasel. toLowerCase0. convert ToLower0. convert ToUpperCase0.

18. ¿Qué función se utiliza para generar un número aleatorio entre 0 y 1 en JavaScript?. Math.random(). random(). get RandomNumber(). randomize().

19. ¿Cuál es el operador utilizado para calcular el módulo de una división en JavaScript?. %. /. *. #.

20. ¿Cuál es el método utilizado para obtener la longitud de un array en JavaScript?. size(). length(). count(). getSize().

¿Cuál es la forma correcta de iniciar un ciclo while en JavaScript?. for(). do while(). while(). loop().

22. ¿Cuál es el operador lógico utilizado para negar una expresión en JavaScript?. &&. II. !. ?.

23. ¿Cuál es el método utilizado para obtener una subcadena de una cadena en JavaScript?. split(). slice(). substring(). substr().

25. ¿Cuál es el método utilizado para remover el último elemento de un array en JavaScript?. push(). pop(). unshift(). hift().

24. ¿Cuál es el método utilizado para agregar un elemento al final de un array en JavaScript?. push(). pop(). unshift(). shift().

¿Qué significa DOM?. a) Document Object Model. b) Document Object Method. c) Data Object Model. d) Data Object Method.

2. ¿Qué permite hacer JavaScript mediante el modelo DOM?. Modificar el contenido de los documentos. Cambiar los estilos de los elementos. Añadir y eliminar elementos HTML. Todas las anteriores.

3. ¿Cuál es el nodo raíz del modelo DOM?. a) <html>. b) <head>. c) < body>. d) <script>.

4. ¿Cuál es el método para obtener un elemento por su ID en JavaScript?. getElementByld(). getElementByTagName(). getElementByClassName(). getAttribute().

5. ¿Cuál es el método para obtener un arreglo de elementos descendientes de un nodo según su etiqueta en JavaScript?. getElementByld(). getElementByTagName(). getElementByClassName(). getAttribute().

¿Qué propiedad devuelve el tipo de etiqueta HTML de un nodo en JavaScript?. classList. tagName. innerHTML. parentNode.

7. ¿Qué método permite modificar el valor de un atributo enJavaScript?. setAttribute(). removeChild(). insertBefore(). parentNode.

8. ¿Cuál es el método para eliminar un nodo hijo en JavaScript?. setAttribute(). removeChild(). insertBefore(). parentNode.

9. ¿Cuál es el método para añadir un elemento como nodo hijo, por delante de un nodo hermano, en JavaScript?. setAttribute(). removeChild(). insertBefore(). parentode.

10. ¿Qué propiedad devuelve el nodo padre de un objeto en JavaScript?. setAttribute(). removeChild(). insertBefore(). parentode.

¿Cuál es la propiedad que devuelve todas las imágenes de un documento en JavaScript?. document.images. document.forms. document.scripts. document.query SelectorAll().

12. ¿Cuál es la desventaja de utilizar renderizadores en JavaScript?. Requiere encontrar primero la representación deseada en HTML y luego generalizarla. No permite separar los datos de presentación/estilo. No es reutilizable. No se pueden representar diferentes entidades de manera diferente.

13. ¿Cuál es una ventaja del uso de renderizadores en JavaScript?. Permite separar los datos de presentación/estilo. No requiere escribir HTML "normal". No se necesita conocimiento de JavaScript. No se necesita conocimiento de CSS.

14. ¿Cuál es el tipo de dato principal utilizado para representar una plantilla en JavaScript?. String. Object. Array. Boolean.

¿Cuál es el método utilizado para insertar un nodo antes de un nodo hermano en JavaScript?. setAttribute(). removeChild(). insertBefore(). parentNode.

16. ¿Qué propiedad devuelve el primer hijo de un nodo en JavaScript?. parentNode. firstChild. lastChild. nextSibling.

17. ¿Qué propiedad devuelve el último hijo de un nodo en JavaScript?. parentNode. firstChild. lastChild. nextSibling.

18. ¿Qué propiedad devuelve el siguiente nodo hermano de un nodo en JavaScript?. parentNode. firstChild. lastChild. nextSibling.

19. ¿Qué propiedad devuelve el nodo hermano anterior de un nodo en JavaScript?. parentNode. firstChild. previousSibling. nextSibling.

¿Cuál es el método utilizado para agregar una clase a un elemento en JavaScript?. addClass(). appendClass(). setClass(). classList.add().

21. Cuál es el método utilizado para eliminar una clase de un elemento en JavaScript?. removeClass(). deleteClass(). clearClass(). classList.remove().

22. ¿Cuál es el método utilizado para verificar si un elemento tiene una clase en JavaScript?. hasClass(). containsClass(). hasAttribute(). classList.contains().

23. ¿Cuál es el método utilizado para agregar contenido HTML dentro de un elemento en JavaScript?. setHTML(). insertHTML(). innerHTML(). setInnerHTML().

24. ¿Cuál es el método utilizado para obtener el valor de un atributo en JavaScript?. getAttribute(). setAttribute(). removeAttribute(). hasAttribute().

25. ¿Cuál es el método utilizado para eliminar un atributo de un elemento en JavaScript?. getAttribute(). setAttribute(). removeAttribute(). hasAttribute().

1. ¿Qué son los eventos en programación?. Cosas que le ocurren a los elementos HTML. Acciones realizadas por el navegador. Código ejecutado en respuesta a ciertas acciones. hasAttribute().

2. ¿Cuál de las siguientes categorías de eventos no existe en JavaScript?. Eventos del objeto window. Eventos del objeto document. Eventos del objeto console. hasAttribute().

3. ¿Cuál es la sintaxis para agregar un manejador de eventos en JavaScript?. element.addEvent Listener(evento, función);. elemento.onclick = función;. element.attachEvent(evento, función);. hasAttribute().

4. ¿Qué tipo de evento se dispara cuando el usuario carga completamente la página?. mouseover. unload. load. hasAttribute().

5. ¿Cuál es la forma correcta de eliminar un manejador de eventos?. element.deleteEventHandler(evento, función);. element.removeEventListener(evento, función);. element.removeEventHandler(evento, función);. hasAttribute().

6. ¿Qué evento se dispara cuando el ratón pasa por encima de un elemento?. mousedown. mouseover. mouseup. hasAttribute().

7. ¿Qué evento se dispara cuando el ratón deja de pasar por encima de un elemento?. mousemove. mouseout. mouseenter. hasAttribute().

8. ¿Qué evento se dispara cuando se pulsa un elemento?. click. focus. mousedown. hasAttribute().

9. ¿Qué evento se dispara cuando se libera el botón del ratón tras pulsar un elemento?. mouseup. click. mouseout. hasAttribute().

10. ¿Qué evento se dispara cuando un formulario se envía?. submit. change. keydown. hasAttribute().

11. ¿Cuál es el orden de propagación de eventos durante la fase de captura?. Del elemento más externo al más interno. Del elemento más interno al más externo. No hay propagación durante la fase de captura. hasAttribute().

¿Cuál es el objeto que se pasa como parámetro a una función manejadora de eventos?. eventObject. eventinfo. event. hasAttribute().

14. ¿Cuál es el evento que se dispara cuando un usuario envía un formulario?. send. submit. validate. hasAttribute().

13. ¿Por qué es importante validar formularios en el cliente?. a) Para mostrar mensajes de error intuitivos al usuario. b) Para ahorrar al backend el procesamiento de formularios inválidos. c) Para decidir la forma en que se envía el formulario.

15. ¿Qué método se utiliza para agregar datos a un objeto FormData?. formData.add(key, value);. formData.append(key, value);. formData.insert(key,value);. hasAttribute().

16. ¿Cuál es la forma correcta de detener la propagación de un evento?. event.stopPropagation();. event.preventDefault();. event.stop();. hasAttribute().

¿Qué método se utiliza para prevenir el comportamiento predeterminado de un evento?. event.stopDefault();. event.preventDefault();. event.Prevent();. hasAttribute().

18. ¿Cuál es el evento que se dispara cuando el usuario cambia el valor de un campo de formulario?. change. input. submit. hasAttribute().

19. ¿Qué propiedad se utiliza para obtener el valor de un campo de formulario en JavaScript?. field.value. field.content. field.data. hasAttribute().

20. ¿Qué método se utiliza para cambiar el valor de un campo de formulario en JavaScript?. field.changeValue(newValue);. field.setValue(newValue);. field.value = newValue;. hasAttribute().

21. ¿Cuál es el evento que se dispara cuando se pulsa una tecla del teclado?. keydown. keypress. keyup. hasAttribute().

¿Cuál es el método que se utiliza para enviar una solicitud AJAX en JavaScript?. fetch(). request(). send(). hasAttribute().

24. ¿Qué objeto se utiliza para realizar solicitudes HTTP asincronas en JavaScript?. XMLHttpRequest. JSONRequest. HTTPRequest. hasAttribute().

25. ¿Cuál es el método que se utiliza para enviar un formulario utilizando AJAX en JavaScript?. form.submit(). form.send(). form.ajaxSubmit(). hasAttribute().

¿Qué es REST?. Una arquitectura cliente-servidor con estado. Una arquitectura cliente-servidor sin estado. Una arquitectura servidor-servidor. hasAttribute().

2. ¿Qué formato de intercambio de datos se utiliza en REST?. XML. JSON. CSV. hasAttribute().

3. ¿Qué tipos de datos se pueden representar en JSON?. Números decimales con signo, arrays, cadenas de caracteres, objetos, valores nulos y booleanos. Números enteros, cadenas de caracteres y booleanos. Números decimales con signo, arrays, cadenas de caracteres y objetos. hasAttribute().

4. ¿Qué significa AJAX?. Asynchronous JavaScript and XML. Asynchronous JavaScript and XHTML. Asynchronous JavaScript and JSON. hasAttribute().

5. ¿Cuál es el núcleo de AJAX?. XMLHttpRequest (XHR) de JavaScript. (Respuesta correcta). Fetch API de JavaScript. ¡Query AJAX. hasAttribute().

6. ¿Qué ventajas tiene el uso de Fetch API en lugar de XHR?. Mayor compatibilidad con navegadores y simplificación de la lógica de gestión de respuestas y errores. Mayor control a bajo nivel y mayor velocidad de respuesta. Mayor soporte nativo y compatibilidad con diferentes formatos de datos. hasAttribute().

¿Cuál de las siguientes afirmaciones sobre Axios es correcta?. Está basada en XHR y utiliza funciones asíncronas en vez de callbacks. Es una librería externa que simplifica el envío de formularios. Es la API nativa de JavaScript basada en promesas. hasAttribute().

8. ¿Qué atributos principales tiene el objeto response en Axios?. data, status, statusText, headers y request. body, code, message, headers y request. result, statusCode, statusMessage, headers y request. hasAttribute().

9. ¿Qué objeto se utiliza para enviar datos en una petición PUT o POST si los datos provienen de un formulario?. Un objeto FormData. Un objeto JSON. Un objeto XML. hasAttribute().

10. ¿Qué son los módulos API?. Módulos de JavaScript para cargar datos de una API REST externa. Módulos de JavaScript que encapsulan las peticiones a una API REST externa. Módulos de JavaScript que realizan cálculos matemáticos. hasAttribute().

11. ¿Qué se recomienda usar en las peticiones AJAX para ofrecer una experiencia más fluida al usuario?. Peticiones síncronas. Peticiones asíncronas. Peticiones con fetch. hasAttribute().

12. ¿Cuál de las siguientes afirmaciones sobre JSON es correcta?. Es un formato de intercambio de datos cerrado y dependiente del lenguaje de programación. Está basado en la notación para Objects y Arrays de JavaScript. Peticiones con fetch. hasAttribute().

¿Cuál de las siguientes afirmaciones es correcta sobre el objeto XMLHttpRequest (HR)?. Es una funcionalidad exclusiva de los navegadores modernos. Permite realizar peticiones síncronas y asíncronas. Solo se utiliza para enviar peticiones GET. hasAttribute().

14. ¿Cuál es el método HTTP utilizado por defecto en las peticiones fetch?. GET. POST. GET y POST pueden ser utilizados por defecto. hasAttribute().

15. ¿Qué se utiliza para serializar datos en JSON en JavaScript?. El método JSON.parse(). El método JSON.stringify(). El método JSON.serialize(). hasAttribute().

16. ¿Qué objeto se utiliza para obtener los datos de una respuesta en fetch?. El objeto request. El objeto response. El objeto XMLHttpRequest XHR). hasAttribute().

17. ¿Cuál de las siguientes opciones permite establecer encabezados personalizados en una petición fetch?. El método setHeader(). El método setHeaders(). El método setRequestHeader(). hasAttribute().

18. ¿Cuál de las siguientes afirmaciones sobre los códigos de estado HTTP es correcta?. Los códigos 200-299 indican un error del cliente. Los códigos 300-399 indican una redirección. (Respuesta correcta). Los códigos 400-499 indican una respuesta exitosa. hasAttribute().

¿Cuál de las siguientes afirmaciones es correcta sobre las promesas en JavaScript?. Son objetos estáticos que representan un valor que puede estar disponible ahora, en el futuro o nunca. Permiten manejar operaciones asíncronas de manera más sencilla y evitar el callback hell. (Respuesta correcta). Solo están disponibles en navegadores modernos. hasAttribute().

20. ¿Cuál es la forma más común de manejar errores en las peticiones fetch?. Utilizando callbacks de error. Utilizando promesas y el método catchO. Utilizando la propiedad onerror del objeto response. hasAttribute().

21. ¿Cuál de las siguientes afirmaciones sobre la arquitectura REST es correcta?. Utiliza el protocolo TCP/IP para el intercambio de datos. Utiliza verbos HTTP para realizar operaciones sobre recursos. Utiliza exclusivamente el formato XML para el intercambio de datos. hasAttribute().

22. ¿Cuál de las siguientes opciones describe mejor una llamada RESTful?. Una llamada que utiliza XML para el intercambio de datos. Una llamada que sigue los principios y convenciones de la arquitectura REST. Una llamada que utiliza métodos GET y POST exclusivamente. hasAttribute().

¿Qué es una cookie HTTP?. Un fragmento de información enviado por un sitio web y almacenado en el navegador del usuario. Un estándar de programación desarrollado por Lou Montulli. Un paquete de datos devuelto sin modificar en sistemas UNIX. Una respuesta enviada por el servidor al cliente.

2. ¿Cuál es el término que se usa para designar paquetes de datos que recibe un programa y devuelve sin modificar en sistemas UNIX?. Cookie HTTP. Magic cookie. Fragmento de información. Estándar de programación.

3. ¿Cuál es la última versión estándar de las cookies?. Febrero de 1997. Año 2000. Abril de 2011. No hay una versión estándar.

¿En qué parte de la respuesta se envían las cookies desde el servidor al cliente?. En las cabeceras Set-Cookie. En el cuerpo de la respuesta. En los metadatos. En el campo de dominio.

5. ¿Cuál es la diferencia entre las cookies de sesión y las persistentes?. Las cookies de sesión tienen fecha de expiración, mientras que las persistentes no. Las cookies de sesión son volátiles, mientras que las persistentes permanecen almacenadas. Las cookies de sesión son utilizadas para gestionar la sesión del usuario, mientras que las persistentes son utilizadas para realizar tracking. No hay diferencia entre ellas.

6. ¿Qué son las cookies de terceros?. Cookies enviadas por el sitio web que el usuario está visitando. Cookies enviadas por un sitio web externo al que el usuario está visitando pero que tiene acceso a él. Cookies que contienen metadatos como el dominio y el tamaño. Cookies utilizadas para almacenar preferencias del usuario.

7. ¿Cuál es la finalidad de las cookies de tracking?. Almacenar elementos que deben poder ser consultados en cualquier lugar de la aplicación. Compartir tipos de datos complejos entre dos o más vistas de una aplicación. Registrar las actividades del usuario en internet. Almacenar credenciales de un usuario que ha hecho login.

8. ¿Qué interfaces proporciona la Web Storage API?. LocalStorage y Cache API. SessionStorage y IndexedDB. LocalStorage y IndexedDB. Cache API y IndexedDB.

¿Cuál es la diferencia entre localStorage y sessionStorage?. localStorage y sessionStorage son sinónimos, no hay diferencia entre ellos. localStorage almacena los datos de forma persistente, mientras que sessionStorage almacena los datos solo durante la sesión actual. sessionStorage almacena los datos de forma persistente, mientras que localStorage almacena los datos solo durante la sesión actual. localStorage y sessionStorage almacenan los datos de forma cifrada, pero con algoritmos diferentes.

10. ¿Qué es JSON?. Un formato de intercambio de datos que utiliza texto legible para los humanos. Un lenguaje de programación utilizado para crear sitios web interactivos. Un protocolo de comunicación utilizado en la transferencia de datos. Una biblioteca de JavaScript utilizada para manipular el DOM.

¿Cuál es la función del método JSON.stringify0 en JavaScript?. Convierte un objeto o valor JavaScript en una cadena JSON. Parsea una cadena JSON y devuelve un objeto o valor JavaScript. Comprueba si una cadena JSON es válida. Convierte una cadena JSON en un objeto o valor JavaScript.

12. ¿Qué hace el método JSON. Parse() en JavaScript?. Convierte un objeto o valor JavaScript en una cadena JSON. Parsea una cadena JSON y devuelve un objeto o valor JavaScript. Comprueba si una cadena JSON es válida. Convierte una cadena JSON en un objeto o valor JavaScript.

13. ¿Cuál es el objetivo principal de la API Fetch en JavaScript?. Manipular y gestionar los datos almacenados en el localStorage. Realizar solicitudes y recibir respuestas HTTP utilizando promesas. Crear y administrar cookies en el navegador. Realizar operaciones CRUD en una base de datos remota.

15. ¿Qué método se utiliza para enviar datos en una solicitud POST utilizando AJAX?. GET. POST. PUT. DELETE.

16. ¿Qué es el DOM en JavaScript?. Un lenguaje de programación utilizado para el desarrollo de aplicaciones web. Una técnica para cargar páginas web de manera asíncrona sin tener que recargar la página completa. Un modelo de programación utilizado para manipular el contenido y la estructura de una página web. Un protocolo de comunicación utilizado en la transferencia de datos.

¿Cuál es la diferencia entre una función normal y una función flecha (arrow function) en JavaScript?. No hay diferencia, son dos formas diferentes de definir una función. Las funciones flecha no pueden tener parámetros. Las funciones flecha no pueden devolver valores. Las funciones flecha no tienen su propio contexto de "this'.

18. ¿Qué es un closure en JavaScript?. Un error de sintaxis en el código JavaScript. Un bucle infinito en el código JavaScript. Una estructura de datos utilizada para almacenar múltiples valores en JavaScript. Una función que tiene acceso a variables fuera de su propio ámbito léxico.

¿Qué significa que una variable en JavaScript sea "hoisted" (elevada)?. Que la variable se encuentra en un ámbito superior al ámbito actual. Que la variable se ha declarado pero aún no se ha asignado ningún valor. Que la declaración de la variable se mueve al comienzo del ámbito en tiempo de compilación. Que la variable está disponible para ser utilizada en cualquier parte del código.

20. ¿Cuál de las siguientes opciones NO es un tipo de dato primitivo en JavaScript?. number. boolean. string. array.

21. ¿Cuál es el resultado de la expresión 'typeof null' en JavaScript?. "null". "object". "undefined". "number".

¿Qué método se utiliza para añadir un elemento al final de un array en JavaScript?. push(). unshift(). pop(). shift().

23. ¿Cuál es el operador lógico que representa "" en JavaScript?. &&. ||. !. ?.

24. ¿Cuál de las siguientes afirmaciones es cierta sobre el operador ternario en JavaScript?. Es un operador utilizado para realizar operaciones matemáticas. Es un operador utilizado para concatenar cadenas de texto. Es un operador utilizado para comparar dos valores. Es un operador condicional que permite tomar decisiones basadas en una condición.

25. ¿Qué método se utiliza para redondear un número hacia abajo al entero más cercano en JavaScript?. Math.ceil(). Math.round(). Math.floor(). Math.trunc().

¿Cuál es el formato correcto para una cadena que represente una dirección de correo electrónico?. Una combinación de letras mayúsculas y minúsculas, seguidas de '' y un dominio válido. Una combinación de caracteres alfanuméricos, seguidos de '' y un dominio válido. Una combinación de números, seguidos de '@' y un dominio válido. Una combinación de números y caracteres especiales, seguidos de '@' y un dominio válido.

2. ¿Cuál es el formato adecuado para una cadena que represente una contraseña segura?. Al menos cinco caracteres, incluyendo letras mayúsculas y minúsculas. Al menos ocho caracteres, incluyendo letras mayúsculas, minúsculas y números. Al menos ocho caracteres, incluyendo letras mayúsculas, minúsculas, números y caracteres especiales. Al menos diez caracteres, incluyendo letras mayúsculas, minúsculas, números y caracteres especiales.

¿Cuál es el formato correcto para una cadena que represente una fecha en formato DD/MM/AAAA?. Dos dígitos seguidos de una barra diagonal, dos dígitos más y otra barra diagonal, seguidos de cuatro dígitos. Dos dígitos seguidos de una barra diagonal, dos dígitos más y otra barra diagonal, seguidos de dos dígitos. Dos dígitos seguidos de un guion, dos dígitos más y otro guion, seguidos de cuatro dígitos. Dos dígitos seguidos de un guion, dos dígitos más y otro guion, seguidos de dos dígitos.

4. ¿Cuál es el formato adecuado para una cadena que represente un número de teléfono válido en España?. Un código de país seguido de nueve dígitos. Un código de área seguido de siete dígitos. Nueve dígitos, opcionalmente con guiones o espacios separando los grupos. Un número de tres dígitos seguido de un guion y seis dígitos más.

¿Cuál es el formato correcto para una cadena que represente una dirección IPv4?. Cuatro números separados por puntos, cada uno en el rango de O a 255. Tres números separados por puntos, cada uno en el rango de O a 255. Una combinación de letras y números, seguida de dos puntos y cuatro números. Cuatro números separados por guiones, cada uno en el rango de O a 255.

6. ¿Cuál es el formato adecuado para una cadena que represente un nombre de usuario válido?. Una combinación de letras mayúsculas y minúsculas, números y guiones bajos. Una combinación de letras mayúsculas y minúsculas y números, sin caracteres especiales. Una combinación de letras mayúsculas y minúsculas, sin números ni caracteres especiales. Una combinación de letras mayúsculas y minúsculas, números y caracteres especiales, sin guiones bajos.

¿Cuál es el formato correcto para una cadena que represente una URL (Uniform Resource Locator)?. Una combinación de letras mayúsculas y minúsculas, números y caracteres especiales, comenzando con "http://" o "https://". Una combinación de letras mayúsculas y minúsculas, números y guiones bajos, comenzando con "http:/" o *https://". Una combinación de letras mayúsculas y minúsculas, números y guiones bajos, seguida de un dominio válido. Una combinación de letras mayúsculas y minúsculas, números y caracteres especiales, seguida de un dominio válido.

8. ¿Cuál es el formato adecuado para una cadena que represente un número de tarjeta de crédito Visa?. Dieciséis dígitos. Cuatro grupos de cuatro dígitos separados por guiones. Comienza con "VISA" seguido de un guion y trece dígitos. Comienza con "4" seguido de quince dígitos.

10. ¿Cuál es el formato adecuado para una cadena que represente un número de teléfono en el formato internacional?. Un signo más seguido de un código de país y el número de teléfono. Un código de país seguido de un guion, un código de área y el número de teléfono. Un código de país seguido de un guion y el número de teléfono. Un código de país seguido de un espacio y el número de teléfono.

JavaScript. Lenguaje interpretado. Lenguaje compilado. lenguaje de programación. Tipado dinámico. Tipado estático. Solo usado en frontend. Cada navegador tiene su propia implementación de la interfaz ECMAScript. Es la implementación más popular de ECMAScript.

ECMAScript 3. Se añaden expresiones regulares y try/catch. Se añade el soporte para JSON, funciones de iteración de arrays, y “use strict”. Se añaden let/const, valores por defecto para los parámetros.

ECMAScript 5. Se añaden expresiones regulares y try/catch. Se añade el soporte para JSON, funciones de iteración de arrays, y “use strict”. Se añaden let/const, valores por defecto para los parámetros.

ECMAScript 6. Se añaden expresiones regulares y try/catch. Se añade el soporte para JSON, funciones de iteración de arrays, y “use strict”. Se añaden let/const, valores por defecto para los parámetros.

El código JavaScript se ubica. Dentro del elemento head. Dentro del elemento body. Como gestor de evento onEvento="código". En un archivo separado "Fichero .js". Entre comentarios HTML. En archivos CSS auxiliares.

Orden de ejecución del código. pueden aparecer fragmentos de código JavaScript tanto en la cabecera como en distintas partes del cuerpo. se ejecuta siempre en el orden en el que aparece en el código HTML. En body: poner sólo declaraciones de variables y funciones. En head: poner sólo declaraciones de variables y funciones. Su ejecución depende de cuando se llame. El orden es irrelevante.

Variables. Las variables definidas con var tienen ámbito de función (o global si se declaran fuera de una función). Las variables definidas con var se pueden redefinir en el mismo ámbito donde se declaran. Las variables definidas con let tienen el ámbito del bloque donde son declaradas (función, if, for, objeto…). Las variables definidas con let no se pueden redefinir en el mismo ámbito donde se declaran. Las variables definidas con let se pueden redefinir en el mismo ámbito donde se declaran. Las variables definidas con var tienen el ámbito del bloque donde son declaradas (función, if, for, objeto…).

Declaración de variables. JavaScript es sensible a las mayúsculas y las minúsculas. JavaScript es insensible a las mayúsculas y las minúsculas. Es obligatorio declarar las variables. Con el modo estricto sí es obligatorio declarar las variables. El operador ternario es un ejemplo de flujo condicional. El operador ternario es un ejemplo de bucle.

Funciones. La notación flecha se suele utilizar para funciones anónimas o de una línea. La notación flecha se suele utilizar para funciones más complejas. Las funciones son variables pero no se pueden referenciar por su nombre. Las funciones son variables y se pueden referenciar por su nombre. Un ejemplo de función con notación flecha es (x,y)=>x+y;. Un ejemplo de función con notación flecha es let foo = (arg) => {}.

Cadenas. La secuencia puede incluir a su vez comillas simples o dobles. La secuencia debe incluir pares de comillas simples o dobles pero sin combinarse. Las cadenas definidas con acentos graves (` `) pueden contener comillas simples y dobles. Las cadenas definidas mediante estos acentos pueden contener variables mediante la sintaxis ${}. Las cadenas definidas mediante estos acentos pueden contener variables mediante la sintaxis #$. charAt(n): dado un separador, parte la cadena y la convierte en un array.

Cadenas. match(c): devuelve la subcadena que empieza en la posición x y tiene y caracteres. substr(x,y): dice si la subcadena x pertenece a la cadena y. replace(): cambia las ocurrencias de una subcadena por otra. concat(): une dos o más cadenas. trim(): dado un separador, parte la cadena y la convierte en un array. split(): elimina espacios en blanco al principio y al final de la cadena.

Cadenas. match(c): : dice si la subcadena c pertenece a la cadena. substr(x,y): devuelve la subcadena que va de x a y (no incluido). replace(): dice si la subcadena c pertenece a la cadena. concat(): convierte un objeto en una cadena. trim(): elimina espacios en blanco al principio y al final de la cadena. split(): dado un separador, parte la cadena y la convierte en un array.

Array. join(): representa todos los elementos en una cadena usando un separador (por defecto, coma). filter(): Devuelve el primer elemento de un array que cumple una determinada condición, expresada como una función. find(): Devuelve un array que retiene los elementos del array original que cumplen una determinada condición , expresada como una función. pop(): Devuelve un fragmento del array. push(): Añade al final del array un elemento. slice(): Devuelve y elimina el último elemento de un array.

Array. join(): Devuelve un array que retiene los elementos del array original que cumplen una determinada condición , expresada como una función. filter(): Devuelve un array que retiene los elementos del array original que cumplen una determinada condición , expresada como una función. find(): Devuelve el primer elemento de un array que cumple una determinada condición, expresada como una función. pop(): Devuelve y elimina el último elemento de un array. push(): Une los elementos de dos arrays en uno solo. slice(): Devuelve un fragmento del array.

Referencias constantes. Es obligatorio asignarles un valor en su declaración. Su ámbito es de bloque (igual que las variables let). Se comportan como las variables definidas mediante var ya que no se pueden reasignar. Son inmutables. Si el valor es un tipo primitivo, ya no se puede cambia (en este caso si es inmutable). Si el valor es un objeto, se pueden cambiar los valores de las propiedades del objeto (no la referencia al objeto). Si el valor es un tipo primitivo, se puede cambiar (en este caso si es inmutable). Si el valor es un objeto, se pueden cambiar la declaración y la referencia del objeto. Se comportan como las variables definidas mediante let, excepto que no se pueden reasignar.

BOM. Browser Object Mode. Bidimensional Object Mode. Browser Object Mechanism. están relacionados con la estructura del documento HTML. están asociados con el propio navegador. Tiene objetos predefinidos como window, screen, navigator... Tiene objetos predefinidos como head, body, div.

Objeto window. Representa a la ventana del navegador. -status: mensaje de la barra de estado. -frames: un array que contiene todos los frames que tiene la ventana, es decir, devuelve un array de objetos de tipo Frame. -frames: número de frames que contiene la ventana. Representa al propio navegador. Representa a la URL del documento mostrado en window. Incluye métodos como alert, confirm, prompt. Incluye propiedades como appName, mimeTypes. Incluye propiedas como host, port, href. status: true si la ventana está abierta.

Objeto navigator. Representa a la ventana del navegador. plugins: un array con los tipos que soporta el navegador (Application, Audio, Image, Message, Multipart, Text, Video…). plugins: un array con los plugins que tiene instalado el navegador. Por privacidad, no muestra los que ha instalado el usuario. -appName: nombre del navegador: Edge, Firefox, Chrome, Opera… en realidad, todos devuelven “Netscape” por compatibilidad antigua. Representa al propio navegador. Representa a la URL del documento mostrado en window. Incluye métodos como alert, confirm, prompt. Incluye propiedades como appName, mimeTypes. Incluye propiedas como host, port, href. -mimeTypes: un array con los tipos que soporta el navegador (Application, Audio, Image, Message, Multipart, Text, Video…).

Objeto location. Representa a la ventana del navegador. -host: Contiene el nombre del servidor que ha servido la página y el número de puerto de la URL. plugins: un array con los tipos que soporta el navegador (Application, Audio, Image, Message, Multipart, Text, Video…). pathname: URL que se puede cambiar dinámicamente. Representa al propio navegador. Representa a la URL del documento mostrado en window. Incluye métodos como alert, confirm, prompt. Incluye propiedades como appName, mimeTypes. Incluye propiedas como host, port, href. pathname: camino sin incluir ni el servidor ni el puerto.

Depuración. Depurar consiste en encontrar el error que hay tras un fallo en el funcionamiento de un programa. Depurar consiste en simplificar el código del programa para aumentar la legibilidad. la depuración es especialmente complicada. Todos los navegadores modernos tienen un depurador JavaScript incorporado. Su complicación se debe a que no todos los navegadores modernos tienen un depurador JavaScript incorporado. Permiten añadir breakpoints y examiner el valor de las variables. Normalmente se activan con F12 y seleccionando “Console”. Normalmente se activan con F12 y seleccionando “Elements”. Permiten añadir endpoints y examiner el valor de las variables.

Breakpoints. En cada breakpoint, JavaScript parará la ejecución y permitirá que el desarrollador examine los valores de las variables. Tras cada breakpoint, JavaScript parará la ejecución y permitirá que el desarrollador examine los valores de las variables. Antes de cada breakpoint, JavaScript parará la ejecución y permitirá que el desarrollador examine los valores de las variables. Después, se puede reanudar la ejecución del código. Después, se deberá reiniciar la ejecución del código. La palabra debugger tiene el mismo efecto que definir un breakpoint en el depurador. La palabra debugger si no hay depurador disponible, no tiene efecto. La palabra debugger no detiene la ejecución de JavaScript.

Comunicación síncrona. Cuando hay comunicación síncrona entre dos entes A y B, si A envía un mensaje a B, deja de actuar hasta que B responde. Cuando hay comunicación síncrona entre dos entes A y B, si A envía un mensaje a B, A puede seguir actuando (incluso enviando otros mensajes a B o otros entes). B responderá cuando pueda y enviará un mensaje de vuelta a A. También llamada “bloqueante”, porque A se bloquea esperando. También llamada “no bloqueante”. JavaScript es síncrono aunque también puede tener comportamiento asíncrono.

Comunicación asíncrona. Cuando hay comunicación asíncrona entre dos entes A y B, si A envía un mensaje a B, deja de actuar hasta que B responde. Cuando hay comunicación asíncrona entre dos entes A y B, si A envía un mensaje a B, A puede seguir actuando (incluso enviando otros mensajes a B o otros entes). B responderá cuando pueda y enviará un mensaje de vuelta a A. También llamada “bloqueante”, porque A se bloquea esperando. También llamada “no bloqueante”. JavaScript es síncrono aunque también puede tener comportamiento asíncrono. Motivos para usar asincronía: eventos que no sabemos si serán respondidos o cuándo, y no pueden quedarse bloqueando la experiencia de usuario. Se puede usar para, por ejemplo, consultas a una API. Se puede usar para, por ejemplo, consultas a una base de datos. Se puede usar para, por ejemplo, llamar funciones de otros archivos.

Casos de uso de Comunicación asíncrona. Gestionar eventos (callbacks): no se puede predecir en qué momento del tiempo se ejecutará el código asociado a un evento, sólo podemos asegurar que será cuando ocurra el evento. Operaciones en segundo plano (async/await): Evitar que el hilo de ejecución se bloquee si una petición a una API tarda en ser respondida. Operaciones en segundo plano (async/await): Realizar varias peticiones a una API de manera paralela. Gestionar eventos (callbacks): Realizar varias peticiones a una API de manera paralela. Programación asíncrona: async/await: Generalmente, se usan para definir el código asociado a un evento. Programación asíncrona: callbacks: Generalmente, se usan para definir el código asociado a un evento. Una función callback es cualquier función que se pasa como parámetro para ser ejecutada. async/await : Una función marcada como async no es bloqueante, se ejecuta en paralelo con la función que la invoca. async/await : Una función marcada como async es bloqueante, se ejecuta en paralelo con la función que la invoca.

async/await. Solución anterior: Promesas. Solución anterior: callbacks. deben ejecutarse en segundo plano para no bloquear la ejecución. deben ejecutarse en primer plano para seguir el orden de la ejecución. Una función async sólo puede ser invocada dentro de otra función async. Una función async sólo puede ser invocada en cualquier momento. La función que invoca a una función async no espera a que ésta termine. La función que invoca a una función async espera a que ésta termine.

Buenas prácticas en JavaScript – Consideraciones generales. Usar siempre ; tras cada instrucción. Usar let para declarar variables en lugar de var. Usar var para declarar variables en lugar de let. Nombrar variables y funciones en camelCase. Usar new Object() en lugar de {} y new Array() en lugar de []. Usar {} en lugar de new Object() y [] en lugar de new Array(). Usar siempre el mismo tipo de comillas. Usar siempre la misma unidad de indentación. Usar siempre distinta indentación para mejorar la legibilidad.

Modo estricto. Impide usar variables no declaradas. Impide que se pueda cambiar el valor de elementos como NaN y Infinity. Impide que se pueda definir un Object con propiedades repetidas. Asegura que el código será más compatible con futuras versiones de JavaScript. Asegura que el código será más legible para futuras versiones de JavaScript. Impide que se pueda definir un array con []. Impide el uso de variables var.

Función main(). Debe ser async si contiene llamadas a una API o cualquier otra operación asíncrona. No puede ser async. La última línea indica al navegador que debe ejecutar la función main() cuando cargue la página. Por defecto, en JS no existen las funciones de entrada. Por defecto, en JS solo existen las funciones de entrada.

Uso de módulos. Los módulos en JavaScript permiten exportar e importar funciones y variables de otros módulos. No se recomienda su uso ya que todo lo que sea definido en el ámbito global de un fichero JS será accesible por cualquier otro fichero cargado después. El uso de módulos esto dificulta la depuración y saber de dónde provienen las variables que se están usando. Cada archivo (script) es un módulo. debemos referenciar nuestros scripts JS indicando type="module".

Organización del código. La carpeta js/ contiene los módulos cuya función es comunicarse con los diferentes endpoints de nuestra API para enviar o recibir información. La carpeta api/ de nuestro proyecto contendrá todo lo relacionado con archivos JavaScript. La carpeta libs/ contiene las librerías JS externas que usemos en cualquier punto de nuestra aplicación web. La carpeta renderers/ contiene módulos cuya función es transformar objetos JS que representan entidades del dominio en representaciones HTML asociadas. La carpeta utils/ contiene módulos con funciones de utilidad que pueden ser reusadas a lo largo de toda la aplicación.

Modelo DOM. DOM: Document Object Model. DOM: Division Object Model. DOM: Document Object Modelation. Permite dinámicamente acceder y modificar: Contenido Estructura Estilos. son accesibles desde el objeto document. están asociados con el propio navegador.

Manipulación del DOM con JavaScript. Cambiar los elementos HTML de la página. Cambiar los valores de los atributos de dichos elementos. Eliminar elementos y atributos existentes en el HTML. Ejecutar funciones y scripts en respuesta a los eventos originados en los elementos HTML. Eliminar manejadores de eventos. Eliminar el documento principal. Cambiar la ruta de los archivos asociados al código HTML.

Niveles DOM. DOM level 2: CORE, Views, Events, Style, Traversal and range, HTML. DOM level 3: CORE, Validation, Load and Save. DOM Level 0: Aparece cuando empieza a haber soporte para JavaScript en los navegadores (Netscape). DOM level 2: Aparece cuando empieza a haber soporte para JavaScript en los navegadores (Netscape). DOM level 3: CORE, Views, Events, Style, Traversal and range, HTML. DOM Level 0: Permite acceder a algunos elementos HTML, principalmente formularios e imágenes. DOM Level 1:Permite acceder al documento completo. DOM Level 1: Es común a todos los navegadores: se soporta de la misma forma en todos ellos.

Jerarquía de nodos. Cada nodo tiene exactamente un padre, excepto el raíz (que no tiene padre). Cada nodo puede tener un número de hijos (ninguno, uno o varios). Cada nodo puede tener solo un hijo. Si dos nodos tienen el mismo padre se consideran hermanos. Si dos nodos tienen el mismo padre se consideran anivelados. Los atributos de los elementos también son nodos. Los atributos de los elementos no son nodos.

Métodos DOM – Encontrar elemento. -node.getElementById(id): Obtiene un elemento descendiente del nodo a partir de su ID. node.getElementsByTagName(tagName): Obtiene un array de descendientes del nodo que sean un tipo de etiqueta. node.getElementsByClassName(className): Obtiene un array de descendientes del nodo con una clase determinada. node.querySelectorAll(cssSelector): Obtiene un array de descendientes del nodo que concuerdan con un determinado selector CSS. node.getElementsByClassName(className): Obtiene un array de descendientes del nodo que sean un tipo de etiqueta. node.style: Obtiene un array de descendientes del nodo que concuerdan con un determinado selector CSS. node.innerHTML: Devuelve y permite modificar el contenido HTML de un nodo. node.innerText: Devuelve y permite modificar el contenido textual de un nodo.

Renderizadores JS. Un renderizador es un módulo JS que se especializa en proveer diferentes representaciones HTML de un tipo de elemento, dados sus atributos básicos. Se utiliza una cadena "plantilla" representando el HTML del elemento en la cual se insertan sus atributos y se convierte a un nodo DOM que se puede insertar en la página. Un renderizador es una clase JS que se especializa en proveer la misma representación HTML de un tipo de elemento, dados sus atributos básicos. Ventajas: Permiten separar datos de presentación/estilo. Ventaja: Los datos pueden venir de cualquier parte: introducidos a mano, consulta a I, desde un archivo…. Ventaja: Se debe encontrar primero la representación deseada escribiéndola en HTML "normal", y luego generalizarla. Desventajas: Puede no merecer la pena para elementos que no aparezcan a menudo. Desventajas: Se debe encontrar primero la representación deseada escribiéndola en HTML "normal", y luego generalizarla. Ventaja: Altamente reutilizables: se pueden usar en cualquier lugar de la aplicación.

Eventos en JS. Como manejar los eventos: Añadir un listener. Como manejar los eventos: Añadir un visitor. Para definir cómo se debe reaccionar a un evento que afecta a un determinado elemento, se añade a dicho elemento un manejador de eventos (event handler), con la siguiente sintaxis: <elemento manejador='codigo JavaScript'>. Para definir cómo se debe reaccionar a un evento que afecta a un determinado elemento, se añade a dicho elemento un manejador de eventos (event handler), con la siguiente sintaxis: <elemento manejador.src='/codigo.js'>. Lo habitual es encapsularlo en una función, y llamarla desde el manejador: <elemento manejador='function()'>. Lo habitual es encapsularlo en una función, y llamarla desde el manejador: <elemento function().manejador>. También se puede definir el comportamiento cuando se produce un evento con un event listener: element.addEventListener(evento,funcion);.

Event handlers vs Event listeners. El listener está pendiente de que ocurra el evento (el listener notifica al handler). Un handler es la combinación entre El listener que informa cuando se produce el evento El código que se ejecuta como respuesta al evento (callback function). En la práctica, se usan ambos términos de forma intercambiable, aplicando una metonimia. En la práctica, se usan por recomendaciones los listeners. El listener es la combinación entre El handler que informa cuando se produce el evento El código que se ejecuta como respuesta al evento (callback function). Un handler está pendiente de que ocurra el evento (el handler notifica al listener). Si se añaden varios handlers al mismo evento, sólo se ejecutará el último (se sobreescriben). Si se añaden varios listeners al mismo evento, todos ellos se ejecutarán cuando se produzca el evento. Si se añaden varios listeners al mismo evento, sólo se ejecutará el último (se sobreescriben). Si se añaden varios handlers al mismo evento, todos ellos se ejecutarán cuando se produzca el evento.

¿En qué orden se ejecuta el código asociado a los manejadores?. Capturing: El orden es del elemento más externo al más interno. Bubbling: El orden es del elemento más interno al más externo. Capturing: El orden es del elemento más interno al más externo. Bubbling: El orden es del elemento más interno al más interno.

Eventos load/unload. Eventos manejados muy frecuentemente en asociación con el elemento body. Se disparan cuando el usuario carga completamente la página (incluyendo estilos, scripts, etc) o sale de ella, respectivamente. También se pueden usar para gestionar las cookies. Bubbling: El orden es del elemento más interno al más interno. Eventos manejados muy frecuentemente en asociación con el elemento head. Se disparan al iniciar la carga de la página (incluyendo estilos, scripts, etc) o sale de ella, respectivamente. Evento change: Evento que se suele manejar frecuentemente asociado a los campos de los formularios.

Eventos de ratón. mouseover: Cuando se libera el botón del ratón tras pulsar sobre un elemento. mouseover: cuando el ratón está pasando por encima del elemento. mouseout: cuando el ratón deja de pasar por encima del elemento. mousedown: Cuando se pulsa el botón del ratón sobre el elemento. mouseup: Cuando se libera el botón del ratón tras pulsar sobre un elemento. mousedown: cuando el ratón deja de pasar por encima del elemento. mouseup: cuando el ratón está pasando por encima del elemento.

El objeto Event. Este objeto tiene ciertas propiedades que pueden ser consultadas desde la función. Todo objeto evento hereda de la clase Event. las propiedades concretas no dependen del subtipo de evento de que se trate. Todos tienen la propiedad "target", que devuelve una referencia al elemento HTML que provoca el evento. Todos tienen la propiedad "action" , que devuelve una referencia al elemento HTML que provoca el evento.

¿Por qué validar formularios en cliente?. Permite mostrar al usuario mensajes de error intuitivos antes de enviar el formulario al backend. Se puede cancelar el envío del formulario para ahorrar al backend procesar formularios inválidos. No se puede cancelar el envío del formulario una vez enviados a pesar de ser formularios inválidos. Podemos decidir enviar el formulario de cualquier otra manera en lugar de la que ofrece por defecto el navegador (AJAX). Evitar la validación en backend.

Ventajas y desventajas FormData. Permite añadir, eliminar y modificar más fácilmente los valores que se enviarán al servidor. Tener que realizar una búsqueda en el DOM por cada <input>. Se puede enviar directamente el objeto FormData a través de AJAX. Permite el uso de módulos validadores. Los valores del objeto FormData son copias de los que hay en los <input>, si se desea modificar el formulario que ve el usuario hay que acceder a ellos y cambiarlos.

Módulos validadores. Simplifica el código asociado a la gestión de eventos de la página. Permite la combinación mediante composición de validadores. Permite añadir, eliminar y modificar más fácilmente los valores que se enviarán al servidor. Ofrece una interfaz de programación estándar para acceder y manipular los datos de un formulario.

REST. Arquitectura cliente-servidor. Sin estado. Cacheable. Modelo en capas. Interfaz uniforme. Uso de URIs para identificar recursos. Métodos HTTP estándar: GET, POST, PUT, DELETE, PATCH. Con o sin estado. Interfaz adaptable. Modelo en componentes.

JSON. Formato de intercambio de datos abierto. Basado en la notación para Objects y Arrays de JS. Usa una sintaxis muy comprensible para humanos. Los objetos se representan mediante un conjunto de pares atributo-valor. Especificado por primera vez por Douglas Crockford. Formato de intercambio de datos cerrado. Usa una sintaxis muy compleja para humanos. Indentación obligatoria. Se permiten comentarios.

AJAX. Asynchronous JavaScript And XML. Asynchronous JavaDeveloper And XML. El núcleo de AJAX es la API XMLHttpRequest (XHR) de JS. El núcleo de AJAX es la API XMLHttpRequest (XML) de JS. XHR puede usarse para hacer peticiones síncronas o asíncronas. XHR puede usarse para hacer peticiones síncronas únicamente. Se recomienda usar peticiones asíncronas. Soporte nativo. La interfaz a bajo nivel hace que sea complejo de utilizar.

jQuery. Ventajas: Facilita la escritura de código para realizar peticiones AJAX. Ventaja: Al ser parte de jQuery, es cross-browser. Desventaja: Librería externa. Basada en XMLHttpRequest (XHR). Ventajas: Intercepta request y response. Ventajas: Permite cancelar requests. Se recomienda usar peticiones asíncronas. usa funciones asíncronas en vez de callbacks.

Axios. Todas las peticiones con axios devuelven un response. Ventaja: Al ser parte de jQuery, es cross-browser. Desventaja: Librería externa. Basada en XMLHttpRequest (XHR). Ventajas: Intercepta request y response. Ventajas: Permite cancelar requests. Se recomienda usar peticiones asíncronas. usa funciones asíncronas en vez de callbacks. En cualquier petición axios no se puede pasar un parámetro adicional para configurar la petición (cabeceras HTTP, timeout…).

Peticiones POST/PUT. En las peticiones POST y PUT se puede pasar un objeto JS, que se serializará a JSON y se enviará como cuerpo de la petición. Las peticiones PUT son equivalentes usando el método axios.put(). Al igual que el resto de métodos, si el servidor devuelve un error, se ejecuta el "catch". Basada en XMLHttpRequest (XHR). Ventajas: Intercepta request y response. Ventajas: Permite cancelar requests. Se recomienda usar peticiones asíncronas. usa funciones asíncronas en vez de callbacks. En cualquier petición axios no se puede pasar un parámetro adicional para configurar la petición (cabeceras HTTP, timeout…).

Módulos API. Módulos JS encargados de encapsular las peticiones a una API REST externa. Permiten aislar al resto de la aplicación de la implementación concreta para realizar peticiones AJAX proporcionando una interfaz común estándar. Acceso programático a las consultas, modificaciones, inserciones y borrado de datos. Centralizan la configuración de elementos comunes como la URL base o las cabeceras que deben enviarse en todas las peticiones (por ejemplo, tokens de sesión). Cada operación se define con una función síncrona. En el interior de la función se realiza la petición AJAX únicamente. Los métodos pueden aceptar parámetros si los necesitan, por ejemplo, datos de formulario para enviar. Los módulos de API se pueden generar automáticamente con el comenda silence createapi. Se define un objeto de acceso a API y por cascada se definen todas las operaciones consecuentes.

Carácteres reservados: . representa cualquier carácter. cuantificadores. representan principio/final de la cadena. sirven para definir grupos/rangos/cuantificadores. sirve para definir opciones. se utiliza para meta-caracteres y escape.

Caracteres reservados: + * ?. representa cualquier carácter. cuantificadores. representan principio/final de la cadena. sirven para definir grupos/rangos/cuantificadores. sirve para definir opciones. se utiliza para meta-caracteres y escape.

Caracteres reservados: ^ $. representa cualquier carácter. cuantificadores. representan principio/final de la cadena. sirven para definir grupos/rangos/cuantificadores. sirve para definir opciones. se utiliza para meta-caracteres y escape.

Caracteres reservados: () [] {}. representa cualquier carácter. cuantificadores. representan principio/final de la cadena. sirven para definir grupos/rangos/cuantificadores. sirve para definir opciones. se utiliza para meta-caracteres y escape.

Caracteres reservados: |. representa cualquier carácter. cuantificadores. representan principio/final de la cadena. sirven para definir grupos/rangos/cuantificadores. sirve para definir opciones. se utiliza para meta-caracteres y escape.

Caracteres reservados: \. representa cualquier carácter. cuantificadores. representan principio/final de la cadena. sirven para definir grupos/rangos/cuantificadores. sirve para definir opciones. se utiliza para meta-caracteres y escape.

Meta-caracteres: \w. Cualquier carácter alfanumérico o guión bajo. Cualquier dígito. Espacios (incluye tabulaciones y saltos de línea). Fin de línea. Tabulador. Principio/fin de palabras. Cualquier carácter NO alfanumérico o guión bajo. Cualquier carácter NO espacio.

Meta-caracteres: \d. Cualquier carácter alfanumérico o guión bajo. Cualquier dígito. Espacios (incluye tabulaciones y saltos de línea). Fin de línea. Tabulador. Principio/fin de palabras. Cualquier carácter NO alfanumérico o guión bajo. Cualquier carácter NO espacio.

Meta-caracteres: \s. Cualquier carácter alfanumérico o guión bajo. Cualquier dígito. Espacios (incluye tabulaciones y saltos de línea). Fin de línea. Tabulador. Principio/fin de palabras. Cualquier carácter NO alfanumérico o guión bajo. Cualquier carácter NO espacio.

Meta-caracteres: \n. Cualquier carácter alfanumérico o guión bajo. Cualquier dígito. Espacios (incluye tabulaciones y saltos de línea). Fin de línea. Tabulador. Principio/fin de palabras. Cualquier carácter NO alfanumérico o guión bajo. Cualquier carácter NO espacio.

Meta-caracteres: \t. Cualquier carácter alfanumérico o guión bajo. Cualquier dígito. Espacios (incluye tabulaciones y saltos de línea). Fin de línea. Tabulador. Principio/fin de palabras. Cualquier carácter NO alfanumérico o guión bajo. Cualquier carácter NO espacio.

Meta-caracteres: \b. Cualquier carácter alfanumérico o guión bajo. Cualquier dígito. Espacios (incluye tabulaciones y saltos de línea). Fin de línea. Tabulador. Principio/fin de palabras. Cualquier carácter NO alfanumérico o guión bajo. Cualquier carácter NO espacio.

Meta-caracteres: \W. Cualquier carácter alfanumérico o guión bajo. Cualquier dígito. Espacios (incluye tabulaciones y saltos de línea). Fin de línea. Tabulador. Principio/fin de palabras. Cualquier carácter NO alfanumérico o guión bajo. Cualquier carácter NO espacio.

Meta-caracteres: \S. Cualquier carácter alfanumérico o guión bajo. Cualquier dígito. Espacios (incluye tabulaciones y saltos de línea). Fin de línea. Tabulador. Principio/fin de palabras. Cualquier carácter NO alfanumérico o guión bajo. Cualquier carácter NO espacio.

Rangos: [abc]. Encuentra cualquiera de los caracteres dentro de los corchetes (a, b, c). Encuentra cualquier carácter que no esté dentro de los corchetes (cualquiera menos a, b, c). Cualquier carácter en el rango a-z (minúsculas). Cualquier carácter en el rango A-Z (mayúsculas). Cualquier letra. Cualquier carácter que no sea una letra.

Rangos: [^abc]. Encuentra cualquiera de los caracteres dentro de los corchetes (a, b, c). Encuentra cualquier carácter que no esté dentro de los corchetes (cualquiera menos a, b, c). Cualquier carácter en el rango a-z (minúsculas). Cualquier carácter en el rango A-Z (mayúsculas). Cualquier letra. Cualquier carácter que no sea una letra.

Rangos: [a-z]. Encuentra cualquiera de los caracteres dentro de los corchetes (a, b, c). Encuentra cualquier carácter que no esté dentro de los corchetes (cualquiera menos a, b, c). Cualquier carácter en el rango a-z (minúsculas). Cualquier carácter en el rango A-Z (mayúsculas). Cualquier letra. Cualquier carácter que no sea una letra.

Rangos: [A-Z]. Encuentra cualquiera de los caracteres dentro de los corchetes (a, b, c). Encuentra cualquier carácter que no esté dentro de los corchetes (cualquiera menos a, b, c). Cualquier carácter en el rango a-z (minúsculas). Cualquier carácter en el rango A-Z (mayúsculas). Cualquier letra. Cualquier carácter que no sea una letra.

Rangos: [a-zA-Z]. Encuentra cualquiera de los caracteres dentro de los corchetes (a, b, c). Encuentra cualquier carácter que no esté dentro de los corchetes (cualquiera menos a, b, c). Cualquier carácter en el rango a-z (minúsculas). Cualquier carácter en el rango A-Z (mayúsculas). Cualquier letra. Cualquier carácter que no sea una letra.

Cuantificadores: p*. Cualquier número de veces p (0..N). Al menos una vez p (1..N). Cero o una vez p (0..1). X veces p. Entre X e Y veces p (ambos inclusive). Al menos X veces p.

Cuantificadores: p+. Cualquier número de veces p (0..N). Al menos una vez p (1..N). Cero o una vez p (0..1). X veces p. Entre X e Y veces p (ambos inclusive). Al menos X veces p.

Cuantificadores: p?. Cualquier número de veces p (0..N). Al menos una vez p (1..N). Cero o una vez p (0..1). X veces p. Entre X e Y veces p (ambos inclusive). Al menos X veces p.

Cuantificadores: p{X}. Cualquier número de veces p (0..N). Al menos una vez p (1..N). Cero o una vez p (0..1). X veces p. Entre X e Y veces p (ambos inclusive). Al menos X veces p.

Cuantificadores: p{X,Y}. Cualquier número de veces p (0..N). Al menos una vez p (1..N). Cero o una vez p (0..1). X veces p. Entre X e Y veces p (ambos inclusive). Al menos X veces p.

Modificadores: /i. No distingue entre mayúsculas/minúsculas. Busca todas las apariciones del patrón (si no se indica, se para cuando encuentra el primero). Afecta al comportamiento de los metacaracteres $ y ^. Cuando está activo, se encuentra el patrón no solo al principio y final del texto completo, si no, al principio/final de línea. Afecta al comportamiento del metacarácter . , cuando está activo, hace que también incluya saltos de línea.

Modificadores: /g. No distingue entre mayúsculas/minúsculas. Busca todas las apariciones del patrón (si no se indica, se para cuando encuentra el primero). Afecta al comportamiento de los metacaracteres $ y ^. Cuando está activo, se encuentra el patrón no solo al principio y final del texto completo, si no, al principio/final de línea. Afecta al comportamiento del metacarácter . , cuando está activo, hace que también incluya saltos de línea.

Modificadores: /m. No distingue entre mayúsculas/minúsculas. Busca todas las apariciones del patrón (si no se indica, se para cuando encuentra el primero). Afecta al comportamiento de los metacaracteres $ y ^. Cuando está activo, se encuentra el patrón no solo al principio y final del texto completo, si no, al principio/final de línea. Afecta al comportamiento del metacarácter . , cuando está activo, hace que también incluya saltos de línea.

Modificadores: /s. No distingue entre mayúsculas/minúsculas. Busca todas las apariciones del patrón (si no se indica, se para cuando encuentra el primero). Afecta al comportamiento de los metacaracteres $ y ^. Cuando está activo, se encuentra el patrón no solo al principio y final del texto completo, si no, al principio/final de línea. Afecta al comportamiento del metacarácter . , cuando está activo, hace que también incluya saltos de línea.

Denunciar Test