Resumen:
A principios de los años 90, la mayoría de usuarios que se conectaban a
Internet lo hacían con módems a una velocidad máxima de 28.8 kbps. En esa
época, empezaban a desarrollarse las primeras aplicaciones web y por tanto, las
páginas web comenzaban a incluir formularios complejos.
Con unas aplicaciones web cada vez más
complejas y una velocidad de navegación tan lenta, surgió la necesidad de un
lenguaje de programación que se ejecutara en el navegador del usuario. De esta
forma, si el usuario no rellenaba correctamente un formulario, no se le hacía
esperar mucho tiempo hasta que el servidor volviera a mostrar el formulario
indicando los errores existentes.
Brendan Eich, un
programador que trabajaba en Netscape, pensó que podría solucionar este
problema adaptando otras tecnologías existentes (como ScriptEase)
al navegador Netscape Navigator 2.0, que iba a lanzarse en 1995. Inicialmente,
Eich denominó a su lenguaje LiveScript.
Posteriormente, Netscape firmó una alianza
con Sun Microsystems para el desarrollo del nuevo lenguaje de programación.
Además, justo antes del lanzamiento Netscape decidió cambiar el nombre por el
de JavaScript. La razón del cambio de nombre fue exclusivamente por marketing,
ya que Java era la palabra de moda en el mundo informático y de Internet de la
época.
La primera versión de JavaScript fue un
completo éxito y Netscape Navigator 3.0 ya incorporaba la siguiente versión del
lenguaje, la versión 1.1. Al mismo tiempo, Microsoft lanzó JScript con su
navegador Internet Explorer 3. JScript era una copia de JavaScript al que le
cambiaron el nombre para evitar problemas legales.
Para evitar una guerra de tecnologías,
Netscape decidió que lo mejor sería estandarizar el lenguaje JavaScript. De
esta forma, en 1997 se envió la especificación JavaScript 1.1 al organismo ECMAEuropean Computer Manufacturers
Association).
ECMA creó el comité TC39 con el objetivo de "estandarizar
de un lenguaje de script multiplataforma e independiente de cualquier
empresa". El primer estándar que creó el comité TC39 se
denominó ECMA, en el que se
definió por primera vez el lenguaje ECMAScript.
Por este motivo, algunos programadores
prefieren la denominación ECMAScript para referirse al lenguaje JavaScript.
De hecho, JavaScript no es más que la implementación que realizó la empresa
Netscape del estándar ECMAScript.
Glosario básico: Script cada uno de los programas, aplicaciones o trozos
de código creados con el lenguaje de programación Java Script. Unas pocas líneas
de código forman un script y un archivo de miles de líneas de Java Script
también se considera un script. A veces se traduce al español directamente
como "guion", aunque script es una palabra más adecuada y
comúnmente aceptada.
Sentencia: cada una de las instrucciones que forman un
script.
Palabras reservadas: son las palabras (en inglés) que se
utilizan para construir las sentencias de Java Script y que por tanto no pueden
ser utilizadas libremente. Las palabras
actualmente reservadas por Java Script son: break, case, catch, continue, default, delete, do, else, finally, for,function, if, in.
Nacimiento de Java Script: Java Script fue desarrollado originalmente por Brendan Eich de Netscape con el nombre de Mocha, el cual fue renombrado posteriormente a Live Script, para finalmente quedar como Java Script. El cambio de nombre coincidió aproximadamente con el momento en que Netscape agrego soporte para la tecnología Java en su navegador web Netscape Navigator.
Java Script es una marca registrada de Oracle Corporation. Es usada con licencia por los productos creados por Netscape Comunications y entidades actuales como la Fundación Mozilla.
Microsoft dio como nombre a su dialecto de Java Script, para evitar problemas relacionadas con la marca. Java Script fue adoptado en la version 3.0 de Internet Explorer liberado en Agosto de 1996, e incluyo compatibilidad con el efecto 2000 con la funciones de fecha.
En 1997 los autores propusieron8 JavaScript para que fuera adoptado como estándar de la European Computer Manufacturers 'Association ECMA, que a pesar de su nombre no es europeo sino internacional, con sede en Ginebra. En junio de 1997 fue adoptado como un estándar ECMA, con el nombre de ECMAScript. Poco después también como un estándar ISO.
Java Script en el lado servidor: Netscape introdujo una implementación de script al lado del servidor con Netscape Enterprise Server, lanzada en diciembre de 1994, a partir de mediados de la década de los 2000, ha habido una proliferación de implementaciones de Java Script para el lado servidor. Node.js es uno de los notables ejemplos de Java Script en el lado del servidor, siendo usado en proyectos importantes.
Desarrollos Posteriores: Java Script se ha convertido en uno de los lenguajes de programación más populares en Internet Al principio, sin embargo, muchos desarrolladores renegaban el lenguaje porque el público al que va dirigido lo formaban publicadores de artículos y demás aficionados, entre otras razones. La llegada de Ajax devolvió al Java Script a la fama y atrajo la atención de muchos otros programadores. Como resultado de esto hubo una proliferación de un conjunto de frameworks y librerías de ámbito general, mejorando las prácticas de programación con Java Script, y aumentado el uso de Java Script fuera de los navegadores web, como se ha visto con la proliferación de entornos Java Script al lado del servidor. En enero de 2009, el proyecto Common js fue inaugurado con el objetivo de especificar una librería para uso de tareas comunes principalmente para el desarrollo fuera del navegador web.
Características: Java Script soporta gran parte de la estructura de programacion de c (por ejemplo, sentencias
if, bucles for, sentencias switch, etc.). Con una salvedad, en parte: en c, el ambito de las variables alcanza al bloque en el cual fueron definidas; sin embargo en Java Script esto no es soportado, puesto que el ámbito de las variables es el de la función en la cual fueron declaradas. Esto cambia con la versión de Java Script 1.7, ya que soporta block scoping por medio de la palabra clave let. Como en c, Java Script hace distinción entre expresiones y sentencias. Una diferencia sintáctica con respecto a c, es la inserción automática de punto y coma, es decir, en Java Script los puntos y coma que finalizan una sentencia pueden ser omitidos.
Java Script en otros entornos: La inigualable popularidad de Java Script como lenguaje de programación
de aplicaciones web se ha extendido a otras aplicaciones y otros entornos no
relacionados con la web. Herramientas como Adobe Acrobat permiten incluir código Java Script en
archivos PDF. Otras herramientas de Adobe como Flash y Flex utilizan
Action Script, un dialecto del mismo estándar de Java Script.
Photoshop permite realizar pequeños scripts mediante Java Script y la
versión 6.0 de Java incluye un nuevo paquete (denominado javax.script) que permite
integrar ambos lenguajes. Por último, aplicaciones como Yahoo Widgets y el Dashboard
de Apple utilizan Java Script para programar sus widgets.
Ejemplos:
A continuación, se muestra un primer script sencillo pero completo:
<!DOCTYPE
html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1" />
<title>El primer script</title>
<script type="text/javascript">
alert("Hola Mundo!");
</script>
</head>
<body>
<p>Esta página contiene el primer
script</p>
</body>
</html>
En este ejemplo, el script se incluye como un bloque de código dentro de
una página XHTML. Por tanto, en primer lugar se debe crear una página XHTML
correcta que incluya la declaración del DOCTYPE, el atributo xmlns, las
secciones <head> y <body>, la etiqueta <title>, etc.
Aunque el código del script se puede incluir en cualquier parte de la
página, se recomienda incluirlo en la cabecera del documento, es decir, dentro
de la etiqueta <head>.
A continuación, el código Java Script se debe incluir entre las
etiquetas <script>...</script>. Además, para que
la página sea válida, es necesario definir el atributo type de la
etiqueta<script>. Técnicamente, el
atributo type se
corresponde con "el tipo MIME", que es un estándar para identificar
los diferentes tipos de contenidos. El "tipo MIME" correcto para
JavaScript estext/javascript.
Una vez definida la zona en la que se incluirá el script, se escriben
todas las sentencias que forman la aplicación. Este primer ejemplo es tan
sencillo que solamente incluye una sentencia: alert("Hola Mundo!");.
La instrucción alert() es una de las utilidades que
incluye Java Script y permite mostrar un mensaje en la pantalla del usuario. Si
se visualiza la página web de este primer script en cualquier navegador,
automáticamente se mostrará una ventana con el mensaje "Hola
Mundo!".
A continuación se muestra el resultado de ejecutar el script en
diferentes navegadores:
Figura 2.1 Mensaje mostrado con
"alert()" en Internet Explorer.
Figura 2.2 Mensaje mostrado con
"alert()" en Firefox.
Figura 2.3 Mensaje mostrado con
"alert()" en Opera.
Como se puede observar en las imágenes anteriores, el funcionamiento de
la utilidad alert() en los
distintos navegadores es idéntico. Sin embargo, existen grandes diferencias
visuales en la forma en la que se presentan los mensajes.
Ejemplo 2:
<html>
<head>
<style type="text/css">
a:active {color:blue}
</style>
<script type="text/javascript">
function getfocus()
{
document.getElementById('w3s').focus();
}
function losefocus()
{
document.getElementById('w3s').blur();
}
</script>
</head>
<body>
<a id="w3s" href="http://www.google.com">Visita Google.com</a><br><br>//solo por presentacion
<form>
<input type="button" onclick="getfocus()" value="Coge el foco">
<input type="button" onclick="losefocus()" value="Pierde el foco">
</form>
</body>
</html>
Ejemplo 3:
<!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html
xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta
http-equiv="Content-Type" content="text/html;
charset=iso-8859-1" />
<title>Ejercicio 2 - Mostrar
mensajes complejos</title>
<script type="text/javascript">
var mensaje = "Hola Mundo! \n Qué facil es incluir \'comillas simples\' \n y
\"comillas dobles\" ";
alert(mensaje);
</script>
</head>
<body>
<p>Esta página muestra un
mensaje complejo</p>
</body>
</html>



