Netscape desarrolló la versión original de JavaScript para la segunda versión de su popular navegador. Inicialmente, Netscape 2 era el único navegador que soportaba un lenguaje de script y ese lenguaje originalmente se llamaba LiveScript. Pronto se renombró JavaScript. Esto fue en un intento de sacar provecho de parte de la publicidad que Sun's Java lenguaje de programación estaba llegando a esa hora.
Si bien JavaScript y Java son superficialmente parecidos, son lenguajes completamente diferentes. Esta decisión de denominación ha causado numerosos problemas a los principiantes con ambos idiomas que continuamente los confunden. Solo recuerda que JavaScript no es Java (y viceversa) y evitarás mucha confusión.
Microsoft intentaba capturar la cuota de mercado de Netscape en el momento en que Netscape creó JavaScript y, por lo tanto, con Internet Explorer 3, Microsoft introdujo dos lenguajes de secuencias de comandos. Uno de ellos se basaron en visual basic y se le dio el nombre de VBscript. El segundo fue un JavaScript similar al que Microsoft llamó JScript.
Para tratar de superar a Netscape, JScript tenía varios comandos y funciones adicionales disponibles que no estaban en JavaScript. JScript también tenía interfaces para la funcionalidad ActiveX de Microsoft también.
Como Netscape 1, Internet Explorer 2 y otros navegadores anteriores no entendían JavaScript ni JScript, se convirtió en un práctica común para colocar todo el contenido del script dentro de un comentario HTML para ocultar el script de versiones anteriores navegadores Los nuevos navegadores, incluso si no podían manejar los scripts, fueron diseñados para reconocer las etiquetas de los scripts y por lo tanto, ocultar el script colocándolo en un comentario no fue necesario para ningún navegador lanzado después de IE3.
Desafortunadamente, cuando los navegadores extremadamente antiguos dejaron de usarse, la gente había olvidado la razón para el comentario HTML y tantas personas nuevas en JavaScript todavía incluyen estas etiquetas ahora completamente innecesarias. De hecho, incluir el comentario HTML puede causar problemas con los navegadores modernos. Si usa XHTML en lugar de HTML, incluido el código dentro de un comentario como ese tendrá el efecto de hacer que el script sea un comentario en lugar de un script. Muchos sistemas de gestión de contenido (CMS) modernos harán lo mismo.
Con el tiempo, tanto JavaScript como JScript se ampliaron para introducir nuevos comandos para mejorar su capacidad de interactuar con las páginas web. Ambos idiomas agregaron nuevas funciones que funcionaron de manera diferente a la función correspondiente (si la hubiera) en el otro idioma.
La forma en que funcionan los dos idiomas fue lo suficientemente similar como para que fuera posible usar la detección del navegador para determinar si el navegador era Netscape o IE. El código apropiado para ese navegador podría ejecutarse. A medida que el equilibrio se movía hacia IE, obteniendo una participación equitativa en el mercado de navegadores con Netscape, esta incompatibilidad necesitaba una resolución.
La solución de Netscape fue entregar el control de JavaScript a la Asociación Europea de Fabricantes de Computadoras (ECMA). La Asociación formalizó los estándares de JavaScript bajo el nombre de ECMAscipt. Al mismo tiempo, el Consorcio de la World Wide Web (W3C) comenzó a trabajar en un Modelo de Objeto de Documento (DOM) estándar que se utilizaría para permitir Acceso completo a JavaScript y otros lenguajes de secuencias de comandos para manipular todo el contenido de la página en lugar del acceso limitado que tenía hasta ese momento.
Antes de que se completara el estándar DOM, tanto Netscape como Microsoft lanzaron sus propias versiones. Netscape 4 vino con su propio document.layer DOM e Internet Explorer 4 vino con su propio document.all DOM. Ambos modelos de objetos de documentos quedaron obsoletos cuando las personas dejaron de usar cualquiera de esos navegadores ya que todos los navegadores desde entonces han implementado el DOM estándar.
ECMAscript y la introducción del DOM estándar en todos los navegadores de la versión cinco y más recientes eliminaron la mayoría de las incompatibilidades entre Javascript y JScript. Si bien estos dos idiomas aún tienen sus diferencias, ahora es posible escribir código que pueda ejecutarse tanto como JScript en Internet Explorer y JavaScript en todos los otros navegadores modernos con muy poca detección de funciones necesario. El soporte para funciones específicas puede variar entre los navegadores, pero podemos probar esas diferencias haciendo uso de un característica incorporada en ambos idiomas desde el principio que nos permite probar si el navegador admite un determinado característica. Al probar las características específicas que no son compatibles con todos los navegadores, podremos determinar qué código es apropiado para ejecutar en el navegador actual.
La mayor diferencia ahora entre JavaScript y JScript son todos los comandos adicionales que admite JScript que permiten el acceso a ActiveX y a la computadora local. Estos comandos están destinados a utilizar en sitios de intranet donde conoce la configuración de todas las computadoras y que todas están ejecutando Internet Explorer.
Todavía quedan algunas áreas donde JavaScript y JScript difieren en los medios que proporcionan para realizar una tarea en particular. Excepto en estas situaciones, los dos idiomas pueden considerarse equivalentes entre sí y, por lo tanto, a menos que se especifique lo contrario, todas las referencias a JavaScript que vea también generalmente incluirán JScript