stringtranslate.com

Script JavaScript

JScript es el dialecto heredado [2] de Microsoft del estándar ECMAScript [3] que se utiliza en el navegador web Internet Explorer de Microsoft .

JScript se implementa como un motor de secuencias de comandos activas . Esto significa que se puede "conectar" a aplicaciones de automatización OLE que admitan secuencias de comandos activas, como Internet Explorer , Active Server Pages y Windows Script Host . [4] También significa que dichas aplicaciones pueden utilizar varios lenguajes de secuencias de comandos activas, por ejemplo, JScript, VBScript o PerlScript .

JScript fue soportado por primera vez en el navegador Internet Explorer 3.0 lanzado en agosto de 1996. Su versión más reciente es JScript 9.0, incluida en Internet Explorer 9.

JScript 10.0 [5] es un dialecto independiente, también conocido como JScript .NET , que añade varias características nuevas de la cuarta edición abandonada del estándar ECMAScript. Debe compilarse para la versión 2 o la versión 4 de .NET Framework , pero las anotaciones de tipo estático son opcionales.

JScript ha sido criticado por ser inseguro y tener múltiples errores de seguridad "explotados por actores de estados nacionales", [6] lo que llevó a Microsoft a agregar una opción para deshabilitarlo. [7]

Comparación con JavaScript

Como explicó Douglas Crockford en su charla titulada El lenguaje de programación JavaScript en YUI Theater,

[Microsoft] no quería tratar con Sun Microsystems sobre el problema de la marca registrada, por lo que llamaron a su implementación JScript. Mucha gente piensa que JScript y JavaScript son lenguajes diferentes pero similares. Ese no es el caso. Son simplemente nombres diferentes para el mismo lenguaje, y la razón por la que los nombres son diferentes fue para evitar problemas de marca registrada. [8]

Sin embargo, JScript admite la compilación condicional , que permite a un programador ejecutar código de forma selectiva dentro de comentarios de bloque . Se trata de una extensión del estándar ECMAScript que no es compatible con otras implementaciones de JavaScript, por lo que la afirmación anterior no es completamente cierta, aunque la compilación condicional ya no es compatible con el modo Estándar de Internet Explorer 11.

Otras diferencias de implementación interna entre JavaScript y JScript, en algún momento, se notaron en Microsoft Developer Network (MSDN). [9] El valor de tipo predeterminado para el elemento script en Internet Explorer es JavaScript, mientras que JScript era su alias. [10] En una aparente transición de JScript a JavaScript, en línea, la Guía para desarrolladores de Microsoft Edge hace referencia a la biblioteca de referencia web Mozilla MDN como su documentación definitiva. [11] A partir de octubre de 2017, las páginas MSDN de Microsoft para scripts en Internet Explorer también se están redirigiendo allí. [12] Esta información puede no incluir objetos específicos de JScript, como Enumerator, que se enumeran en la referencia del lenguaje JavaScript en Microsoft Docs. [13] Estos proporcionan características adicionales que no están incluidas en los estándares ECMA, ya sea que sean compatibles con el navegador Edge o su predecesor. [14]

Versiones

JScript (COM clásico)

El JScript original es un motor de secuencias de comandos activas . Al igual que otros lenguajes de secuencias de comandos activas, está basado en la plataforma de automatización COM/OLE y ofrece capacidades de secuencias de comandos para alojar aplicaciones.

Esta es la versión utilizada cuando se aloja JScript dentro de una página web mostrada por Internet Explorer , en una aplicación HTML anterior a IE9 , así como en scripts clásicos de ASP , Windows Script Host y otros entornos de automatización .

A veces se hace referencia a JScript como "JScript clásico" o "JScript Active Scripting" para diferenciarlo de las versiones más nuevas basadas en .NET.

Algunas versiones de JScript están disponibles para varias versiones de Internet Explorer y Windows. Por ejemplo, JScript 5.7 se introdujo con Internet Explorer 7.0 y también se instala para Internet Explorer 6.0 con Windows XP Service Pack 3 , mientras que JScript 5.8 se introdujo con Internet Explorer 8.0 y también se instala con Internet Explorer 6.0 en Windows Mobile 6.5 .

La implementación de Microsoft de ECMAScript 5th Edition en Windows 8 Consumer Preview se llama JavaScript y la versión beta correspondiente de Visual Studio 11 Express incluye un editor de JavaScript "completamente nuevo" y con todas las funciones, con mejoras de IntelliSense para la sintaxis HTML5 y ECMAScript 5 , anotaciones "VSDOC" para sobrecargas múltiples, configuración DOM simplificada , coincidencia de llaves, esquema colapsable e "ir a la definición". [15]

JScript también está disponible en Windows CE (incluido en Windows Mobile, opcional en Windows Embedded CE). La versión de Windows CE no tiene depuración activa.

JScript administrado

Managed JScript es una implementación de JScript para Dynamic Language Runtime y forma parte de los lenguajes dinámicos de Microsoft para .NET junto con IronRuby , IronPython y Dynamic Visual Basic . A diferencia de JScript .NET, que es menos dinámico que el JScript original pero ofrece compatibilidad con CLS , Managed JScript está diseñado sobre DLR y ofrece las características necesarias para los escenarios de scripting.

Si bien actualmente está diseñado principalmente para usarse en Silverlight y ASP.NET, también se puede integrar fácilmente en cualquier aplicación .NET.

(Fuente: Blog de JScript, blog Thinking Dynamic de Jim Hugunin, Fuente: Blog de Jitu)

Existen dos compilaciones de Managed JScript: una para Desktop CLR y otra para Silverlight CoreCLR.

JScript administrado no es compatible con .NET Compact Framework .

(Fuente: versiones de archivos de Microsoft.JScript.Runtime.dll en las carpetas ASP.NET Futures y Silverlight 1.1)

JScript "Chakra" (JsRT)

JScript "Chakra" se basa en la versión JScript (COM classic), pero ha sido rediseñado para mejorar el rendimiento en Internet Explorer 9 [20] a expensas de la compatibilidad adecuada con el motor Active Scripting. Requiere una API específica de Microsoft JavaScript Hosting (JsRT) para su uso correcto. Por lo tanto, se instala junto con JScript 5.x y solo lo utilizan Internet Explorer 9 y versiones posteriores, así como los hosts JsRT, mientras que otros hosts Active Scripting siguen utilizando la versión 5.x cuando solicitan el motor JScript.

Existen dos versiones del motor Chakra JsRT. La original se utilizó en Internet Explorer 9 y versiones posteriores y a veces se la denomina "jscript9.dll" o "motor Chakra heredado", y la segunda se utiliza en el navegador Microsoft Edge Legacy y a veces se la denomina "nuevo motor Chakra", "motor Edge" o "Chakra.dll". Ambas versiones de Chakra JsRT pueden ser utilizadas por otras aplicaciones que utilicen la API JsRT y pueden instalarse en paralelo. [23]

También existe una versión COM Classic de Chakra llamada internamente "JScript 9 Legacy" (proporcionada por jscript9Legacy.dll), introducida con Windows 11 24H2, que recupera la compatibilidad con los hosts de Active Scripting y está pensada como un reemplazo compatible directo para JScript 5.8. Aunque es en gran medida compatible con el JScript 5.8 original, existen notables diferencias de ruptura. [24]

Consulte la página separada sobre el nuevo motor Chakra (Edge) .

JScript .NET (CLI)

JScript .NET es una implementación de JScript de Microsoft .NET . Es un lenguaje CLI y, por lo tanto, hereda características muy potentes, pero carece de muchas características del lenguaje JScript original, lo que lo hace inadecuado para muchos escenarios de scripting. JScript .NET se puede utilizar para páginas ASP.NET y para aplicaciones .NET completas, pero la falta de soporte para este lenguaje en Microsoft Visual Studio lo coloca más como una ruta de actualización para ASP clásico utilizando JScript clásico que como un nuevo lenguaje de primera clase.

JScript .NET no es compatible con .NET Compact Framework . [ cita requerida ]

Nota: Las versiones de JScript .NET no están relacionadas con las versiones clásicas de JScript. JScript .NET es un producto independiente. Aunque JScript .NET no es compatible con el IDE de Visual Studio, sus versiones están sincronizadas con otras versiones de lenguajes .NET ( C# , VB.NET , VC++ ) que siguen sus versiones correspondientes de Visual Studio.

.NET Framework 3.0 y 3.5 se basan en 2.0 y no incluyen la versión más reciente de JScript.NET (versión 10.0 para .NET Framework 4.0).

(Fuente: versión del archivo jsc.exe del compilador JScript.NET y Microsoft.JScript.dll instalado con .NET Framework)

Véase también

Notas

  1. ^ JScript admite varias características no especificadas en el estándar ECMA, [17] al igual que JavaScript.
  2. ^ Microsoft afirmó que JScript 3.0 era "el primer lenguaje de programación que cumplía plenamente con el estándar ECMA-262". [18]
  3. ^ ab JScript 5.7 incluye una implementación del perfil compacto ECMAScript (ECMA-327) que desactiva las funciones no requeridas por el ES-CP cuando se utiliza el ProgID "JScript.Compact". [ cita requerida ]
  4. ^ abcd JScript .NET "se está desarrollando en conjunto con ECMAScript Edition 4". [25]

Referencias

  1. ^ "Tipos de archivos de script". Msdn.microsoft.com. 24 de octubre de 2011. Consultado el 17 de agosto de 2012 .
  2. ^ "Deshabilitar el motor de scripting heredado JScript en Internet Explorer". TECHCOMMUNITY.MICROSOFT.COM . 2020-10-13 . Consultado el 2021-11-15 .
  3. ^ "JScript (ECMAScript3)". Msdn.microsoft.com. 24 de octubre de 2011. Consultado el 17 de agosto de 2012 .
  4. ^ "¿Qué es WSH?". Msdn.microsoft.com. 24 de octubre de 2011. Consultado el 17 de agosto de 2012 .
  5. ^ ¿Qué es JScript 10.0?
  6. ^ Cimpanu, Catalin. "Microsoft agrega una opción para deshabilitar JScript en Internet Explorer". ZDNet . Consultado el 15 de noviembre de 2021 .
  7. ^ "Opción para deshabilitar la ejecución de JScript en Internet Explorer". support.microsoft.com . Consultado el 15 de noviembre de 2021 .
  8. ^ Douglas Crockford, El lenguaje de programación JavaScript
  9. ^ "El mundo de JScript, JavaScript, ECMAScript". Blogs.msdn.microsoft.com. 15 de agosto de 2007. Consultado el 21 de octubre de 2017 .
  10. ^ "elemento script". Msdn.microsoft.com . Consultado el 16 de octubre de 2017 .
  11. ^ "Guía para desarrolladores de Microsoft Edge". Docs.microsoft.com . Consultado el 18 de octubre de 2017 .
  12. ^ "Documentando la Web juntos". Blogs.windows.com. 18 de octubre de 2017. Consultado el 18 de octubre de 2017 .
  13. ^ "Referencia del lenguaje Javascript (Microsoft Docs)". Docs.microsoft.com . Consultado el 18 de octubre de 2017 .
  14. ^ "Objetos JavaScript (Microsoft Docs)". Docs.microsoft.com . Consultado el 18 de octubre de 2017 .
  15. ^ "Novedades de ASP.NET 4.5 y Visual Web Developer 11 Beta: el sitio oficial de Microsoft ASP.NET". 13 de mayo de 2022.
    "Novedades de ASP.NET 4.5 y desarrollo web en Visual Studio 11 Beta". 12 de mayo de 2015.
  16. ^ Información de la versión (Windows Scripting – JScript), Microsoft , consultado el 31 de mayo de 2010
  17. ^ Características de Microsoft JScript: no ECMA (Windows Scripting – JScript), Microsoft , consultado el 31 de mayo de 2010
  18. ^ Microsoft adopta el estándar de secuencias de comandos de Internet ECMA y ofrece el primer lenguaje de secuencias de comandos compatible con ECMA de la industria, JScript 3.0, en Key Microsoft Products, Microsoft, 1997-06-30, archivado desde el original el 2009-01-12
  19. ^ Lakshman, Pratap. "Desviaciones de JScript con respecto a ES3" (PDF) . The Register . Situation Publishing / Microsoft . Consultado el 9 de febrero de 2020 .
  20. ^ Niyogi, Shanku (18 de marzo de 2010). "El nuevo motor de JavaScript en Internet Explorer 9". IEBlog (archivos) . Microsoft . Consultado el 19 de febrero de 2020 .
  21. ^ Información de la versión (Windows Scripting – JScript), Microsoft , consultado el 31 de mayo de 2010
  22. ^ "Documentos de soporte de estándares de Internet Explorer". Open Specification (Microsoft Docs) . Microsoft . Consultado el 19 de febrero de 2020 .
  23. ^ "Dirigir Microsoft Edge frente a motores heredados en las API de JsRT". Documentación de Microsoft Edge (Microsoft Docs) . Microsoft . Consultado el 19 de febrero de 2020 .
  24. ^ "¿Windows 11 22H2 tiene una forma diferente de usar el motor JS? - Preguntas y respuestas de Microsoft".
  25. ^ ¿Qué es JScript .NET?, Microsoft

Enlaces externos