Prácticas con JavaScript
Desarrollo de Aplicaciones Telemáticas, 2023-2024
Grado en Ingeniería en Tecnologías de la Telecomunicación
Grado en Ingeniería en Sistemas de Telecomunicación
Escuela de Ingeniería de Fuenlabrada
Universidad Rey Juan Carlos


Instrucciones generales

Práctica 3.1. Tipos de datos

Escribe en un fichero ~/dat/practica03/test01.js un programa JavaScript similar a los ejemplos de las transparencias (pero no igual) que haga conversiones entre distintos tipos de datos y que detecte el valor NaN.

Práctica 3.2. Expresiones

Escribe en un fichero ~/dat/practica03/test02.js un programa JavaScript similar a los ejemplos de las transparencias (pero no igual) para probar ejemplos básicos de expresiones aritméticas y expresiones booleanas, con el doble igual y con el triple igual.

Práctica 3.3. Funciones

Escribe en un fichero ~/dat/practica03/test03.js un programa JavaScript similar a los ejemplos de las transparencias (pero no igual) con funciones que ilustren que en JavaScript el paso de valores a las funciones es por valor y no por referencia. También el uso de valores por omisión de un parámetro (al estilo ECMAScript 6).

Práctica 3.4. Funciones flecha

Escribe en un fichero ~/dat/practica03/test04.js un programa JavaScript similar a los ejemplos de las transparencias (pero no igual) con una función sencilla con notación tradicional, y una función equivalente con notación flecha. Prueba la función flecha usándola como argumento de otra función.

Práctica 3.5. Funciones básicas

Escribe un fichero ~/dat/practica03/js01.js que contenga:

Práctica 3.6. Funciones.

Escribe en un fichero ~/dat/practica03/convierte.js un programa JavaScript que tenga una función que reciba dos parámetros:

La función devolverá

Práctica 3.7. Búsqueda en arrays

Escribe un fichero ~/dat/practica03/buscaArrays.js que contenga una función que reciba dos argumentos

La función devolverá un booleano indicando si el elemento está incluido o no en alguno de los arrays de segundo nivel. Como ya sabes, esta función podrá llamar a todas las funciones que necesite.

Para el ejemplo anterior,

La función comprobará que recibe exactamente dos parámetros, que el primero es un array, y que todos sus elementos también son arrays. Lanzará excepciones si corresponde.

Práctica 3.8. Sustitución de espacios

Escribe un programa en JavaScript 6 llamado ~/dat/practica03/quitaEspacios.js que tenga una función que reciba una cadena, y que devuelva esa misma cadena, pero reemplazando los espacios por barras bajas (_). Observa que el nombre del programa es quitaEspacios.js, en notación dromedario.

Si esta función no recibe exactamente un parámetro o ese parámetro no es una cadena, lanzará una excepción.

Práctica 3.9. Plain objects

Escribe en un fichero ~/dat/practica03/buscaObjeto.js un programa en JavaScript que:

En estos ejemplos, 01234, seat o 1 serían un parámetro de la función de búsqueda, no un valor constante en esa función.

La función puede devolver una lista de los plain objects, enteros, tal cual. O puede devolver un identificador del objeto. Seguramente lo segundo sería preferible en un programa real, puedes hacerlo como te parezca mejor.

Práctica 3.10. Busqueda de caracteres

Escribe en un fichero ~/dat/practica03/buscaCadena.js un programa en JavaScript que tenga una función que:

Práctica 3.11. Validación de contraseña

Escribe en un fichero ~/dat/practica03/valida.js un programa JavaScript que tenga una función que indique si una contraseña tiene la fortaleza requerida

Recibirá los siguientes parámetros:

  1. La contraseña.

  2. La longitud mínima que deberá tener la contraseña para que se considere válida.

  3. El número mínimo de minúsculas exigidas. Puede ser 0. Por letra minúscula entenderemos todas las letras inglesas minúsculas, mas la eñe minúscula. Las letras con tilde o con diéresis no las consideramos letras a estos efectos.

    Ejemplo: si el número mínimo de minúsculas exigido es 2, la cadena ESPAña sería válida. Pero CAñóN no, porque la ó con tilde no se considera en este caso correcta (podría ser un carácter especial si así lo especificara el usuario de la librería)

  4. El número mínimo de mayúsculas. Puede ser 0. Como en el apartado anterior, consideramos letra mayúscula todas las letras inglesas, más la eñe mayúscula. Y no consideramos letra las letras con tilde o con diéreses.

    Del mismo modo, si se exigieran por ejemplo al menos 2 mayúsculas, espAÑA sería correcto tendría 3 mayúsculas. Pero ÑandÚ no, porque la Ú no la contaríamos como letra mayúscula.

  5. El número mínimo de dígitos exigidos. (Puede ser 0)

  6. El número mínimo de caracteres especiales exigido. (Puede ser 0)

  7. Una cadena que contendrá todos los caracteres que serán considerados especiales. P.e.

    ,.-{}[]!"·$%&/()=?¿¡'

    Si la contraseña contiene algún carácter especial no incluido en esta lista, se considerará incorrecta.

    Si esta cadena que especifica lo que se considera especial contiene números o letras ordinarias, puedes hacer lo que prefieras: comprobarlo o no, dar un error, ignorarlo, considerarlo un carácter especial, etc

Devolverá

Observaciones adicionales:

Práctica 3.12. Paradoja del cumpleaños

Sea un conjunto aleatorio de personas. ¿Cuál es la probabilidad de que al menos dos de ellas cumplan años el mismo día? La llamada paradoja del cumpleaños (https://es.wikipedia.org/wiki/Paradoja_del_cumplea%C3%B1os) nos dice que si hay al menos 23 personas, la probabilidad es superior al 50%. Si hay al menos 41, la probabilidad es superior al 90% y si son 57, superior al 99%.

Escribe un programa llamado ~/dat/practica03/paradoja.js que tenga:

Observaciones:

Revisión de los nombres de los ficheros

Ejecuta ~mortuno/revisa practicas dat para comprobar que los nombres de los programas son los correctos.