- Una función es un conjunto de instrucciones con entidad propia dentro del script.
- Puede ser ejecutado cuantas veces se desee, y se le puede pasar datos a través de variables para que realice cálculos con ellos.
EJEMPLOS
1.-Escribir el código de una función a la que se pasa como parámetro un número entero y devuelve como resultado una cadena de texto que indica si el número es par o impar. Mostrar por pantalla el resultado devuelto por la función.
SOLUCIÓN
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Ejercicio 8 - Funciones básicas</title> <script type="text/javascript"> var numero = prompt("Introduce un número entero"); var resultado = parImpar(numero); alert("El número "+numero+" es "+resultado); function parImpar(numero) { if(numero % 2 == 0) { return "par"; } else { return "impar"; } } </script> </head> <body> </body> </html>
2.-Definir una función que muestre información sobre una cadena de texto que se le pasa como argumento. A partir de la cadena que se le pasa, la función determina si esa cadena está formada sólo por mayúsculas, sólo por minúsculas o por una mezcla de ambas.
3.-Definir una función que determine si la cadena de texto que se le pasa como parámetro es un palíndromo, es decir, si se lee de la misma forma desde la izquierda y desde la derecha. Ejemplo de palíndromo complejo: "La ruta nos aporto otro paso natural".
SOLUCIÓN
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Ejercicio 9 - Información sobre cadenas</title> <script type="text/javascript"> function info(cadena) { var resultado = "La cadena \""+cadena+"\" "; // Comprobar mayúsculas y minúsculas if(cadena == cadena.toUpperCase()) { resultado += " está formada sólo por mayúsculas"; } else if(cadena == cadena.toLowerCase()) { resultado += " está formada sólo por minúsculas"; } else { resultado += " está formada por mayúsculas y minúsculas"; } return resultado; } alert(info("OVNI = OBJETO VOLADOR NO IDENTIFICADO")); alert(info("En un lugar de la mancha...")); </script> </head> <body> </body> </html>
3.-Definir una función que determine si la cadena de texto que se le pasa como parámetro es un palíndromo, es decir, si se lee de la misma forma desde la izquierda y desde la derecha. Ejemplo de palíndromo complejo: "La ruta nos aporto otro paso natural".
SOLUCIÓN
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Ejercicio 10 - Detección de palíndromos</title> <script type="text/javascript"> function palindromo(cadena) { var resultado = "La cadena \""+cadena+"\" \n"; // Pasar a minusculas la cadena var cadenaOriginal = cadena.toLowerCase(); // Convertir la cadena en un array var letrasEspacios = cadenaOriginal.split(""); // Eliminar los espacios en blanco (este paso es demasiado largo ya que no se utiliza la funcion "replace") var cadenaSinEspacios = ""; for(i in letrasEspacios) { if(letrasEspacios[i] != " ") { cadenaSinEspacios += letrasEspacios[i]; } } var letras = cadenaSinEspacios.split(""); var letrasReves = cadenaSinEspacios.split("").reverse(); // Este paso tambien es muy largo porque no se utiliza la sentencia "break" var iguales = true; for(i in letras) { if(letras[i] == letrasReves[i]) { // Todo bien } else { // Alguna letra es distinta, por lo que ya no es un palindromo iguales = false; } } if(iguales) { resultado += " es un palíndromo"; } else { resultado += " no es un palíndromo"; } return resultado; } alert(palindromo("La ruta nos aporto otro paso natural")); alert(palindromo("Esta frase no se parece a ningun palindromo")); </script> </head> <body> </body> </html>