miércoles, 17 de octubre de 2012

2 - Variables, datos, objetos en Javascript



Interesante: Vídeo Tutorial de Javascript, aprende a programar Javascript desde cero.

Alerta Javascript
Alerta Javascript
Para comenzar a utilizar Javascript (y cualquier lenguaje de programación) es necesario conocer algunos conceptos básicos, no podemos empezar a hacer una casa si no sabemos que existen los ladrillos. Un programa es una lista de instrucciones, pero esas instrucciones se deberán ejecutar sobre algo, si damos una instrucción escribir debemos especificar que es lo que hay que escribir. Es evidente pues que en las instrucciones del programa también deben figurar los datos con que trabajar. Por ejemplo el nombre de una persona es "Juan", esta palabra es un dato. El precio de una manzana en ptas. es 10, este número es otro dato. Estos datos no suelen usarse tal cual sino que se almacenan en unos elementos con nombre denominados Variables. En los ejemplos previos usaría una variable, nombre, para guardar "Juan" o precio para guardar el 10. Si ahora digo al ordenador que escriba nombre el ordenador escribirá su contenido, o sea, Juan. Un pequeño ejemplo para no aburrirnos: 

abre una ventana y escribe en la caja de direcciones del explorador lo que sigue:

javascript:nombre="juan";window.alert(nombre);

¡Acabas de escribir un par de instrucciones en JavaScript! (no te preocupes aún de su significado), como ves has dado un valor a la variable nombre y luego se ha escrito el valor de esa variable. En el ejemplo anterior también podrías haber escrito:

javascript:nombre="juan";window.alert("Mi nombre: "+nombre);

Mediante el símbolo + has concatenado ambas cadenas. Has usado un operador, algo que no es nuevo si has estudiado alguna vez matemáticas. Los operadores son símbolos usados para realizar operaciones con los datos, son los símbolos +, -, /, *, respectivamente sumar, restar, dividir y multiplicar.

  Como sabes estos operadores se usan con datos numéricos: 4 + 5 son 9. Estas dos instrucciones que has escrito podrían encerrarse en un bloque con un nombre, por ejemplo mepresento() y tendrías una función. Podríamos definir una función llamada quehoraes() que encierre las instrucciones necesarias para que aparezca en pantalla la hora actual. Es decir mediante las funciones creamos las órdenes que luego podremos darle al navegador para que actúe según nuestro deseo.

Hasta aquí has visto los elementos básicos existentes cualquier lenguaje de
programación, pero alguna vez habrás leído que Javascript es un lenguaje que utiliza objetos a diferencia de Java que es un lenguaje orientado a objetos. ¿Y que es eso de objetos? Los objetos son como una extensión de las variables, una estructura que nos permite agrupar diferentes valores y nombres de funciones. Una variable numérica sólo puede contener eso, un número: 10 o 20 o 2000, una cadena tipo sólo puede guardar una serie de caracteres "ACAD", "LE18P". Un objeto va mas allá puede guardar varias cosas a la vez. ¿Suena raro?. Veamos un ejemplo muy sencillo: un rectángulo se caracteriza por la longitud de sus lados y por la forma de dibujarlo. En un programa el rectángulo se asimilaría a un objeto que tendría dos propiedades: base y altura, y un método: como_dibujarlo. Este como_dibujarlo sería una función que dibuja rectángulos.

Si un programa define la variable mirectángulo como un objeto de este tipo y contiene la instrucción mirectangulo.como_dibujarlo dibujaría en pantalla un rectángulo. La ventana del explorador que tienes delante es un objeto con propiedades como: altura, anchura, nombre... y métodos como abrir, cerrar, mover...Vamos a hacer algo con este objeto que se llama window, para ello...

 Abre otra ventana de tu navegador y escribe en la barra de direcciones...

javascript:window.close();

¿Has visto lo que ocurre? Has usado el método close() del objeto window para cerrar la ventana. 

Otro ejemplo escribe...

javascript:window.alert(window.closed)

Ahora has usado el método alert del objeto window para mostrar una ventana con el valor de la propiedad closed, closed que dice si  la ventana está cerrada o abierta. Los objetos son bastante mas complicados que lo aquí expuesto, pero JavaScript no es un lenguaje orientado a objetos, aunque puede crearlos y por supuesto manipularlos. Los scripts manipulan los objetos propios del lenguaje y los que le proporciona el navegador. Y he aquí la causa de tus primeros dolores de cabeza como programador en javaScript: los sistemas de objetos de los diferentes navegadores no coinciden al 100%.