JavaScript
es un lenguaje interpretado, desarrollado por Netscape
inicialmente para sus navegadores.
Actualmente
es compatible con los navegadores más utilizados: Netscape Communicator,
Microsoft Internet Explorer, Opera…
JavaScript
permite crear páginas web interactivas (DHTML)
con relativa facilidad. Se utiliza tanto para programación en
el lado del cliente (navegadores fundamentalmente) como en el lado del
servidor (ASP, Netscape Enterprise Server).
El
núcleo de JavaScript incluye los elementos típicos de
un lenguaje de programación: variables, sentencias, estructuras,
operadores… y además incorpora un conjunto de objetos de
utilización frecuente (Array, Math, etc…).
La
extensión para cliente permite acceder a los objetos que utiliza
el navegador y al DOM (Document Object Model), la jerarquía de
objetos de un documento HTML. Añade soporte para control de eventos,
de tal forma que el programa puede interactuar con el usuario.
La
extensión para servidor aporta objetos que permiten un acceso
sencillo a la interfaz CGI y la utilización de servicios del
servidor web.

JavaScript
es un lenguaje orientado a objetos (en el sentido de que permite
construir objetos y utilizarlos), con control de tipos muy débil.
Por ejemplo, el programador puede utilizar variables que no han sido
declaradas y asignar valores de distintos tipos a la misma variable
a lo largo del programa.
Aunque
la similitud del nombre puede inducir a creer que JavaScript es equivalente
a Java, la verdad es que no tienen prácticamente nada en común.
Java ha sido desarrollado para construir grandes aplicaciones distribuidas,
con el objetivo de máxima fiabilidad. JavaScript se creó
con el objetivo de ser un lenguaje sencillo de aprender y utilizar,
ideal para desarrollar pequeños programas que corren en un navegador.
En
esta tabla se pueden apreciar algunas diferencias entre JavaScript y
los applets de Java:
| JavaScript |
Java
(applets) |
| Programa
interpretado por el cliente. |
Programa
compilado en bytecodes. Es bajado del servidor y ejecutado en el cliente
(Applets). |
| Orientado
a objetos. No distingue entre tipos de objetos. Las propiedades y
los métodos son añadidos dinámicamente a los
objetos. |
Los
objetos son instancias de clases. La herencia se consigue a través
de la jerarquía de clases. Las clases y los objetos se definen
en tiempo de diseño y no pueden ser modificados en tiempo de
ejecución. |
| El
código JavaScript se funde con el código HTML. |
El
código se integra en la página HTML, pero como una unidad
llamada Applet. |
| No
hay definición de tipos para las variables. |
Definición
estática de tipos. Control de tipos fuerte. |
| Limitaciones
de seguridad. |
Limitaciones
de seguridad. |