jueves, 8 de noviembre de 2007

¿Qué es JavaScript?

Segun geneura.ugr.es JavaScript es un lenguaje interpretado, al igual que VisualBasic, Perl, TCL... sin embargo, posee una característica que lo hace especialmente idóneo para trabajar en Web, ya que son los navegadores que utilizamos para viajar por ella los que interpretan (y por tanto ejecutan) los programas escritos en JavaScript. De esta forma, podemos enviar documentos a través de la Web que incorporan el código fuente de un programa, convirtiéndose de esta forma en documentos dinámicos, y dejando de ser simples fuentes de información estáticas.

Los programas en JavaScript no son la primera forma que conoce la Web para transformar información, dado que el uso de CGIs está ampliamente difundido. La diferencia básica que existe entre un programa CGI y uno escrito en JavaScript es que el CGI se ejecuta en el servidor de páginas Web mientras que el programa en Javascript se ejecuta en el cliente (es decir, en el navegador). Por regla general, el CGI necesita unos datos de entrada (que normalmente se proporcionan mediante un formulario), los procesa y emite un resultado en forma de documento HTML. Esto implica tres transacciones en la red. La primera carga la página del formulario, la segunda envía los datos al servidor, y la tercera recibe la nueva página que ha generado el CGI. Por el contrario, los programas escritos en JavaScript se ejecutan en el navegador del cliente, sin necesidad de que intervenga el servidor. De esta forma, una sola transacción basta para cargar la página en la que se encuentra tanto el formulario, para los datos de entrada, como el programa en JavaScript que proporciona los resultados. Sin embargo, esto no significa (como veremos después) que los CGI vayan a ser substituidos por JavaScript.

Las dos principales características de JavaScript son, por un lado que es un lenguaje basado en objetos (es decir, el paradigma de programación es básicamente el de la programación dirigida a objetos, pero con menos restricciones), y por otro JavaScript es además un lenguaje orientado a eventos, debido por supuesto al tipo de entornos en los que se utiliza (Windows y sistemas X-Windows). Esto implica que gran parte de la programación en JavaScript se centra en describir objetos (con sus variables de instancia y métodos de "clase") y escribir funciones que respondan a movimientos del ratón, pulsación de teclas, apertura y cerrado de ventanas o carga de una página, entre otros eventos.

Por último, es necesario resaltar que hay dos tipos de JavaScript. Por un lado está el que se ejecuta en el cliente. Este es el JavaScript propiamente dicho, aunque técnicamente se denomina Navigator JavaScript. Pero también existe un JavaScript que se ejecuta en el servidor. Este, más reciente, se denomina LiveWire JavaScript. Nos centraremos solo en el primero, el Navigator JavaScript.

Este tutorial es muy básico, ideal por tanto para aquellas personas que no hayan tenido ningún contacto con JavaScript. Pretende ser un primer punto de referencia para aplicaciones más avanzadas, de modo que se explican en él los conceptos más básicos. Los ejemplos son extremadamente sencillos e intentan clarificar el uso de un determinado objeto o función, aunque la aplicación que se les dé no sea muy vistosa o útil.

En el apéndice se pueden encontrar otros sitios Web en los que podrá encontrar más documentación sobre Javascript.


2. ¿Qué NO es JavaScript?

Ante todo no es un lenguaje de propósito general. No permite un control absoluto sobre los recursos del ordenador, tal y como estamos acostumbrados al crear un programa (aunque las últimas innovaciones de los navegadores en cuestiones de seguridad le están dando un mayor operatibilidad) . Cada programa en JavaScript solo tiene acceso al documento HTML en el que va inmerso y, si acaso, a las ventanas en las que se ejecuta el navegador dentro del cual se está ejecutando el programa en JavaScript.

Como ya se ha dicho, tampoco es un sustituto de los CGIs. Ciertas cosas no se pueden hacer en JavaScript, especialmente las relacionadas con acceso a ficheros en todos sus sentidos. Sin embargo es muy útil para depurar errores en los datos antes de pasárselos al CGI que los trata, por lo que el uso combinado de JavaScript y CGIs redunda en un mejor tratamiento de datos y un menor número de transacciones en la Web cuando se usan los CGIs.

Por último, no es un lenguaje orientado a objetos, ya que, por ejemplo, no existe el concepto de clase. Es basado en objetos, de modo que se trabaja directamente con instancias de objetos.

3. Conceptos fundamentales de programación

Antes de empezar con Javascript como tal, daremos algunsa nociones fundamentales de programación sin las cuales poco podremos hacer con Javascript. Estas nociones son comunes al 99% de los lenguajes actualmente existentes, aunque daremos algunas características especiales de este lenguaje.

3.1. Datos e instrucciones

Lo primero que hay que tener en cuenta es que programar es básicamente tomar datos, realizar operaciones con ellos y mostrar resultados. Claro que dicho así parece que hubiéramos convertido en una simpleme calculadora nuestro ordenador. Sin embargo, hay que tener en cuenta que al programar podemos manipular datos de tipo numérico (enteros y reales), pero también podemos manejar cadenas (string), caracteres (character), y valores lógicos (los valores true y false, que no tienen nada que ver con las cadenas), entre otros. Más aún, no solo podemos trabajar con cada uno de estos datos por separado, sino que podemos unirlos formando registros (como fichas de biblioteca, etc), o matrices en las que caben muchos de estos datos más simples.

Normalmente estos datos no pululan a lo largo del programa a su libre albedrío, sino que se almacenan en variables. Cada variables tiene un nombre que es una palabra, y contiene un valor (este valor puede ser un número, una cadena, o cualquier otro tipo de dato). Cuando operamos con el nombre de una variable, en realidad lo que se hace es operar con el valor que contiene. Ya veremos en los ejemplos su utilidad.

Una vez que sabemos con qué datos podemos trabajar, es conveniente saber qué instrucciones (o sentencias) se les pueden aplicar, las cuales podemos resumir en las siguientes:

Sentencias secuenciales

Sentencias condicionales
Este tipo de sentencias se caracteriza por que en ellas se evalua una condicion; si dicha condicion es cierta se ejecutaran un grupo de sentencias, y si es falsa se ejecutaran otras. De esta forma, los programas pueden variar su comportamiento en funcion de los datos que manejen.

La sentencia m'as usada es la denominada IF condicion THEN sentencias_verdad ELSE sentencias_falso. Es decir, eval'ua la condici'on y, si es cierta ejecuta el grupo de sentencias sentencia_verdad, y si no era cierta ejecuta el grupo de sentencias sentencias_falso

Sentencias iterativas
Tambi'en llamadas sentencias repetitivas< o bucles. Estas sentencias se usan cuando queremos que un grupo de instrucciones se repita varias veces. El n'umero de repeticiones puede ser fijo, depender de alguna variable (o alg'una operaci'on aritm'etica) o depender de una determinada condici'on.

Sentencias de este tipo son:

Fuente: geneura.ugr.es/~victor/cursillos/curso_javascript_basico/jsb_intro.html

No hay comentarios: