JavaScript 1

| Geovanni Figueroa M. | Revista Digital Matemática, Educación e Internet |

 
1 2 3 4

 

Funciones

 

Las funciones son parte importante de todo lenguaje de programación, nos permiten construir bloques de código y con ello ganamos claridad y tiempo en la implementación.

Podríamos pensar en las funciones como los macros que se usan en algunos procesadores de texto u hojas de cálculo, claro está que son mucho más poderosas y complejas que estos. Una vez que se ha definido una función esta se invoca por su nombre y de esta forma la acción que se asocio con ella se ejecuta. Ya hemos visto algunas funciones en los guiones que hemos construido hasta ahora, en general el formato de una función es el siguiente:

function nombre_de_la_funcion(argumentos)

{

conjunto de instrucciones

}

El nombre de la función (nombre_de_la_funcion) se construye siguiendo la misma sintaxis que los nombre de las variables, es decir, debe iniciar con una letra y luego pueden usarse letra, números o guión bajo (_). Recuerde que JavaScript es sensitivo y la función Suma(a) es diferente de la función suma(a).

En JavaScript las funciones pueden devolver valores o no, en este sentido no se comportan como funciones, matemáticamente hablando. En caso de que devuelvan un valor se usa return.

En la siguiente plantilla se muestra un guión el el cual se usa una función para calcular la ecuación de una recta. En este caso la función no devuelve valores, sino que escribe los resultados en los correspondientes cuadros de texto.

Guión: Ecuación de una recta

El guión se vería algo así:

Ecuación de una recta

(x1,y1) = ( , )
(x2,y2) = ( , )
La ecuación de la recta es: y = x +

JavaScript permite el uso de funciones recursivas, es decir, funciones que se llaman a sí mismas. La recursividad es un técnica de programación de cuidado, pues no es difícil que una función recursivo deje sin memoria a la máquina sobre la que se está ejecutando, debido a un algoritmo mál codificado, o incluso, aún estando correcto, su ejecución con determinados parámetros de entrada puede requerir tantas llamadas recursivas que llegue a agotar los recursos del sistema (cada llamada implica el alamacenamiento de variables de estado y otros parámetros). Otro inconvieniente está en la velocidad, las sucesivas llamadas a sí misma que realiza la función recursiva retrasan la ejecución de todo el proceso.

Tal vez, la única gran ventaja de la recursividad está en la reducción, en algunos casos notable, del tamaño del código. Sin embargo, este aspecto nunca pesa más que la creación de un código seguro, rápido y estable.


Funciones predefinidas

 

Ya hemos usado algunas de las funciones predefinidas de JavaScript, como la función eval(), la cual nos permite evaluar una cadena de caracteres que esta escrita en código JavaScript. La siguiente tabla muestra algunas de las funciones predefinidas más usadas.

 

Función
Sintaxis
Descripción
eval eval(string) Evalua un string de código JavaScript.
isNan isNan(valor) Determina si valor no es un número. Retorna falso si valor es un número
Number Number(objeto) Convierte un objeto a número.
String String(objeto) Convierte un objeto a un string
parseInt parseInt(string,[base]) Convierte el string a entero.
parseFloat parseFloat(string) Convierte un string a real

 

Jerarquía de Objetos

JavaScript es un lenguaje más que orientado a objetos, basado en objetos, estos objetos tienen propiedades que los describen y métodos que nos permiten interactuar con ellos. Por ejemplo, el objeto document tiene un método llamado write y algunas propiedades como bgColor (color de fondo), fgColor (color de texto), linkColor (color de vínculos), ect. Para hacer referencia a alguno de sus métodos o propiedades debemos usar el nombre del objeto seguido por un punto y el nombre de la propiedad o método. Ssi es el caso, entre paréntesis debemos indicar los argumentos del método, Por ejemplo

document.write("Hola Mundo");

document.bgColor = "#6666FF ";

document.write("<b>El color de los vínculo de esta página es: <b> " + documet.linkColor );

Ahora, cada objeto tiene diferentes propiedades y métodos: ¿cómo saber qué sigue a qué ? . Bueno esto se resuelve escribiendo objetos, métodos y propiedades de forma jerárquica. Es decir, debemos comprender la jerarquía de objetos de JavaScript, esta jerarquía tiene un nombre: Modelo de Objeto de Documento (DOM).

En la figura se muestra la jerarquía de objetos de JavaScript (DOM) para Netscape Navigator 4.x.

 

 

Observe que todas las referencias empiezan con el objeto que está en lo más alto, window (la ventana del navegador), y de ahí hacia la derecha de arriba hacia abajo. window es el objeto de nivel más alto en JavaScript. No hace falta que lo usemos en nuestro código. JavaScript supone que, si no decimos lo contrario, todo ocurre dentro de la ventana del navegador.

Esto significa que deberíamos escribir

window.document.write("Mensaje") ;

window.fecha.getDay();

window.default.status;

pero no es necesario, obviamente porque se entiende que el objeto de nivel más alto es window.

Lo más confuso de todo esto es que algunos objetos son también propiedades. Volvamos a la figura

Recuerde que vamos de izquierda a derecha y de arriba hacia abajo, por ejemplo la siguiente línea es correcta

document.write(location.href);

pero una línea como

document.mitexto.miform

no lo es, pues no respeta el orden de izquierda a derecha, debería ser document.miform.mitexto.

Un concepto fundamental en la jerarquía de objetos, y que ya hemos visto en algunos de nuestros guiones, se presenta con los formularios, por ejemplo, suponga que tenemos un cuadro de texto en HTML en nuestra página. El usuario escribe algo en el cuadro de texto. Para recuperar el contenido de este cuadro de texto utilizando JavaScript debemos usar la propiedad value; por ejemplo, document.miform.mitexto.value. Si escribimos document.miform.mitexto obtendríamos información sobre el campo de texto del formulario, pero no de su contenido. La propiedad value devolverá lo que está dentro del cuadro de texto.

En la siguiente figura se muestra una parte de la jerarquía de objetos de JavaScript de Microsoft. En este esquema hemos marcado los objetos comunes con netscape en color verde, y los que sólo soporta Netscape en celeste. Realmente el DOM del Navigator 4.x es un subconjunto del DOM del IE 4.x/5.x. Esto es lo que hace que el Navigator presente limitaciones importantes en su capacidad de acceder a ciertos elementos de una página y de modificar sus propiedades.

 

 

Objetos predefinidos


En el lenguaje JavaScript existe una serie de objetos predefinidos que se refieren a cosas como la ventana actual, el documento sobre el que trabajamos, o el navegador que estamos utilizando. Vamos a hacer un pequeño repaso de algunos de ellos con los métodos y propiedades más usados.

Objeto window:


Es el objeto principal. Define la ventana sobre la que estamos trabajando y tiene como descendientes los objetos referentes a la barra de tareas, el documento o la secuencia de direcciones de la última sesión. Ahora veremos su métodos y propiedades más usadas.

Debemos tener cuidado con las propiedades que modifiquemos, es posible que algunas combinaciones de los mismos no funcionen en todos los navegadores. El Explorer 4, por ejemplo, da error ante la combinación toolbar=no, directories=no, menubar=no.

 

Objeto document:



Es un objeto derivado de window que identifica al documento HTML cargado actualemente en el navegador..

 

Objeto history:



Este objeto se deriva de document y contiene todas las direcciones que se han visitado en la sesión actual. Tiene estos tres métodos:

 

Objeto Date:


Este es un objeto de propósito general que permite trabajar con fechas y horas. Y estos son algunos de sus métodos:

Con lo que te puedo decir que hoy es

El guión que hace esto se muestra en la siguiente plantilla.

Guión: Fecha y hora

Observe, la línea

fecha = new Date();

lo que hace es crear una instancia del objeto Date(). Luego en las siguientes líneas llamamos a los métodos que nos devuelven el día, el mes, el año, la hora, los minutos y los segundos.

 

Objeto Math:


Este otro objeto de propósito general incluye los diferentes métodos que permiten manejar las funciones matemáticas más comunes. En la siguiente tabla ae muestran algunos de estos métodos.

 

Método
Descripción
Math.abs(argumento) El valor absoluto del argumento
Math.acos(argumento) El arco coseno del argumento
Math.asin(argumento) El arco seno del argumento
Math.atan(argumento) El arco tangente del argumento
Math.cos(argumento) El coseno del argumento
Math.sin(argumento) El seno del argumento
Math.tan(argumento) La tangente del argumento
Math.exp(argumento) La exponencial del argumento en base e
Math.log(argumento) El natural dell argumento
Math.LN2 Logaritmo en base e de 2
Math.LN10 Logaritmo en base e de 10
Math.E La base de los logaritmos naturales
Math.LOG10E Logartimo en base 10 de E
Math.LOG2E Logaritmo en base 2 de E
Math.ceil(argumento) El número que es mayor en una unidad o igual al argumento
Math.floor(argumento) El número que es menor en una unidad o igual al argumento
Math.sqrt(argumento) La raíz cuadrada del argumento
Math.Math.SQRT2 La raíz cuadrada de 2
Math.round(argumento) Redondea el argumento al número más cercano
Math.pow(arg1,arg2) arg1 elevado al número arg2
Math.min(arg1,arg2) El menor de los dos argumentos
Math.max(arg1,arg2) El mayor de los dos argumentos
Math.PI El valor de pi

 

Objeto navigator:



A través de este objeto podremos averiguar varias características del navegador que usamos. Por ejemplo:

No podemos sobreescribir estos atributos, pero sí leerlos.

Por ejemplo, te puedo decir que en este momento estas usando el navegador:

Objeto screen:


Con este objeto podremos averiguar la configuración de la pantalla. Al igual que en el anterior, todos sus atributos son de sólo lectura.

Así, por ejemplo, te puedo decir que en este momento tu pantalla está configurada para una resolución de .

 

1 2 3 4 5


Cidse - Revista virtual Matemática, Educación e Internet - ITCR
Derechos Reservados