Anterior
 
Introducción Siguiente
Uso de JS

En esta sección:
  1. ¿Qué es JavaScript?
  2. ¿Qué NO es JavaScript?
  3. Diferencias entre Java y JavaScript


1. ¿Qué es JavaScript? Indice 

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? Indice 

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. Diferencias entre Java y JavaScript Indice 

Aunque pudiera pensarse que son una misma cosa, son dos lenguajes totalemente diferentes. Ciertos detallas son similares para ambos (lenguajes muy relacionados con la Web, basados en un paradigma de programació orientada a objetos, permiten trabajar con objetos inmersos en un documento HTML...), pero en esencia son dos lenguajes independientes.

He aquí algunas de las diferencias más notables entre Java y Javascript:

El hecho de que algunas personas confundan estos dos lenguajes puede deberse a que el compilador de Java crea un código intermedio que debe ser nuevamente traducido por java virtual machine, dándose la circunstancia de que los navegadores pueden traducir dicho código intermedio y, por tanto, pueden ejecutar programas escritos en Java.

Para acabar esta introducción diremos que JavaScript se ejecuta tanto los navegadores de Netscape como en los Internet Explorer de Microsoft (NS e IE respectivamente). En lo básico son compatibles, pero desde la ú:ltima versión del lenguaje, la 1.2, han surgido ciertas diferencias que deben ser tenidas en cuenta por aquellos que diseñen páginas html (dichas diferencias se centran especialmente en la gestión del nuevo modelo de eventos, del cual se dan referencias en el apéndice).

Pondré especial cuidado en que todo lo que se diga sirva tanto para IE como para NS, pero si algo no funciona será porque estás usando el IE; por más que yo prefiera el NS no te voy a poner un enlace para que lo bajes; si a estas alturas todavía no lo has hecho... :-)