1.1 ¿Qué es Javascript?

JavaScript es un lenguaje interpretado, al igual que VisualBasic, Perl, TCL... (ahora está de moda decir que son lenguajes de script :-|) 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 llevan incorporados el código fuente de programas, 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:

  1. Cargar la página del formulario
  2. Enviar los datos al servidor, y
  3. Recibir 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 o Client-Side Javascript. Pero también existe un JavaScript que se ejecuta en el servidor. Este, más reciente, se denomina Server-side JavaScript y existen múltiples "motores" que permiten interpretar programas escritos en este lenguaje. Los más conocidos son sin duda Spider Monkey y Rhino.

Este tutorial se centra sólo en el Javascript del navegador (Client-side JavaScript). Para conocer más del Javascript del servidor se puede visitar el tutorial Introducción al lenguaje de programación 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.

1.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.

1.3. Configuración del entorno de programación

Para programar en Javascript sólo necesitamos un editor de textos y un navegador que respete los estándares de la W3C. En general, recomendamos utilizar el navegador Firefox por incluir un depurador de código Javascript que nos ayudará a detectar errores en los programas.

Para activar el depurador debemos utilizar la opción Herramientas > Consola de errores, o bien la combinación de teclas Control + Mayúsculas + J. Con ello obtendremos la siguiente ventana:

Consola de depuración de errores de Javascript
Desde esta ventana es posible ver los errores que han surgido en la carga de la página, así como evaluar expresiones (como se muestra en la imagen con el ejemplo de 2+3).

Es además muy interesante incluir dentro del navegador Firefox complementos tales como Firebug. Este complemento es un completísimo depurador de código para páginas web, e incluye depuración del código Javascript que haya en las mismas.

Por lo general, los diseñadores de páginas web suelen también instalar un complemento denominado Web Developer, el cual permite depurar desde el propio navegador el comportamiento de las etiquetas HTML, colores, capas, etc.