Introducción

¿Qué es JavaScript?

JavaScript es un eficiente lenguaje de guionización desarrollado por Netscape para el desarrollo de cliente-servidor de Web.

Si bien en mucho más riguroso que Java, no hay duda que JavaScript es un lenguaje completo basado en objetos.

JavaScript trabaja de la manera siguiente: en el lado del cliente, Netscape Navigator o Internet Explorer interpretan los comandos de JavaScript (JScript en el caso de Microsoft) que están embebidos directamente en la página de HTML. Lo anterior significa que un guión de JavaScript puede ser ejecutado directamente en la computadora cliente sin necesidad de conectarse de nuevo al servidor. Al cambiar la tarea de ejecutar guiones del servidor al cliente, el proceso de añadir interactividad a la página se vuelve más rápido y eficiente.

JavaScript es un lenguaje interpretado. A diferencia de los lenguajes compilados que crean código binario, los lenguajes interpretados se ejecutan "en el instante, comando por comando". Lo anterior implica que JavaScript es per se más simple que Java para tareas de control de páginas de HTML.

La mejor manera de aprender el estado de la cuestión en JavaScript es darle un View Source a tus páginas favoritas y hackearte el código para obtener tips y trucos.

Entre las cosas interesantes que puede realizar JavaScript mencionaremos sólo algunas:

  • Verificación local de datos de entrada a formas, notificando al usuario si la entrada es incorrecta.
  • Creación de pequeñas aplicaciones en línea.
  • Comunicación con Java applets para control de parámetros.

¿Cómo podemos comparar JavaScript contra Java? Para empezar podemos remarcar el hecho de que Java es un lenguaje compilado y Java es interpretado. Sin embargo, también es cierto que JavaScript soporta mucha de la sintaxis básica y control de flujo de Java.

En la siguiente tabla podemos ver las diferencias entre Java y JavaScript:

JavaScript

Java

Interpretado por el cliente, no se genera código binario.

Compilado en el servidor antes de la ejecución por el cliente.

Basado en Objetos. No tiene clases ni herencia; tiene objetos construídos y extensibles.

Orientado a objetos. Los programas consisten de clases, instancias de clases, herencia, etc.

Integrado a / embebido en HTML.

En forma de applets que son accesados desde la página HTML.

No declara los tipo de dato de las variables.

Se debe declarar el tipo de dato de las variables.

Ligado dinámico; las referencias a objetos se revisan al tiempo de ejecución.

Ligado estático. Las referencias a objetos deben existir al tiempo de compilación.

Seguro. No se puede escribir al disco duro.

Seguro. No se puede escribir a disco duro.

El Lenguaje JavaScript

Antes que empecemos a programar guiones trataremos de entender bien cómo está construido el lenguaje.

JavaScript está construido en base a tres bloques particulares:

  • Valores. Los tipos de datos soportados por JavaScript incluyen números, lógicos, cadenas de caracteres y el tipo nulo.
  • Objetos. Es un contenedor dado para una colección de propiedades (valores). También uede estar construido de otros objetos.
  • Funciones. Procedimientos que una aplicación puede ejecutar. Las funciones asociadas con un objeto en particular son llamadas los métodos de un objeto.

 

Valores, literales y nombres

Los tipos de datos que acepta JavaScript son -básicamente- los siguientes:

  • Números: enteros, decimales, hexadecimales, octales, de punto flotante.
  • Valores booleanos: verdadero o falso.
  • Cadenas de caracteres: por ejemplo "Simposium de Sistemas". Caracteres especiales -como en C- : nueva línea ("\n"), retorno ("\r").
  • El nulo para denotar valores nulos. Duh.

Expresiones y operadores

Una expresión es un conjunto de literales (valores literales), variables, operadores y expresiones para un sólo valor. JavaScript soporta los siguientes tipos de expresiones:

  • Aritméticas, evaluadas a un número.
  • Lógicas, evaluadas como ciertas o falsas.
  • Cadenas, evaluadas a una cadena de caracteres.
  • Expresiones condicionales, que pueden tener uno de dos valores basados en una condición.

JavaScript soporta varios operadores, los cuales actúan sobre un valor o conjunto de valores. JavaScript soporta operadores aritméticos, de cadena, lógicos y de comparación&endash;incluyendo operadores unarios y binarios.

Lo anterior incluye todos los operadores aritméticos ordinarios, a saber: adición (+), substracción (-), multiplicación (*) y división (/). Además, el incremente (++) y el decremento (--).

El operador suma puede usarse también para concatenar cadenas, por ejemplo:

"Este es" + "el tutorial" + "de HTML"

Los operadores lógicos son utilizados para comparar y contrastara valores y regresar un valor de cierto o falso. Por ejemplo, la intersección (||), la unión (&&).

Los operadores de comparación comparan dos valores y regresan un valor lógico basado en el valor de verdad de la expresión. Los operadores de comparación incluyen la igualdad (==), la desigualdad (!=), el mayor que (>), el mayor o igual que (>=), el menor o igual que (<=), el menor que (<).

Estatutos

JavaScript incluye estatutos pre-construidos que nos permiten realizar ciclos, por mencionar un ejemplo. Uno de los estatutos más importantes es el estatuto de función, que es la palabra reservada para crear o definir funciones&endash;conjuntos de procedimientos para realizar una tarea. Una vez definida, una función puede ser llamada a ejecución desde cualquier parte del guión.

Algunos de los otros estatutos importantes se comentan a continuación:

  • var El estatuto var declara un nombre de variable con su valor dado, para una instancia en particular, var Beta=1.
  • ifŠ else Este es un estaturo condicional que ejecuta un conjunto de estatutos si una condición es cierta y un segundo conjunto de estatutos si una condición es falsa.
  • for El estatuto for es usado para construir ciclos. Una aplicación típica es para construir contadores.
  • while El estatuto while evalúa la condición de una operación y, de ser cierta, ejecuta un estatuto. Este proceso se repite hasta que la condición evalue a falso.
  • break
  • continue
  • return
  • with

 

El Modelo de Objetos de JavaScript

JavaScript está basado en un paradigma de orientación a objetos, si bien uno más simple. En JavaScript, un objeto está construido con propiedades que son variables o otros objetos. Las funciones asociadas con un objeto son llamadas los métodos del objeto. JavaScript incluye objetos y funciones pre-construidas pero podemos definir las que necesitemos.

Objetos pre-construidos

JavaScript viene con varios objetos pre-construidos. Como las clases de Java, estos objetos preconcebidos permiten construir funciones básicas fácilmente en un programa de JavaScript sin tener que hacer todo el trabajo desde las bases del lenguaje.

El primer objeto pre-construido es el objeto cadena. Cuando uno asigna un valor de cadena a una variable o propiedad se crea un objeto cadena. Por ejemplo:

estacadena = "Este es un objeto cadena"

La ventaja de hacer un objeto a una cadena es que un objeto cadena puede tener métodos asociados que permitan cambiar las propiedades de él. Ejemplo:

document.write(estacadena.toUpperCase())

regresará

"ESTE ES UN OBJETO CADENA"

Cada página de Web tiene los siguientes objetos pre-construidos:

  • Window Este contiene las propiedades de la ventana principal así como también las propiedades de cualquier ventana "hija" creada con la etiqueta FRAME.
  • Location Este contiene las propiedades del URL actual.
  • History Este contiene las propiedades representando los URLs que el usuario ha visitado previamente.
  • Document Este contiene las propiedades para el documento actual, incluyendo su título, color de fondo, ligas, anclas, formas, elementos de formas, etc.