stringtranslate.com

JScript

JScript — это устаревший [2] диалект стандарта ECMAScript [ 3] компании Microsoft , который используется в веб-браузере Internet Explorer и HTML-приложениях компании Microsoft , а также в качестве отдельного языка сценариев Windows.

JScript реализован как механизм Active Scripting . Это означает, что его можно «подключить» к приложениям OLE Automation , которые поддерживают Active Scripting, таким как Internet Explorer , Active Server Pages и Windows Script Host . [4] Это также означает, что такие приложения могут использовать несколько языков Active Scripting, например JScript, VBScript или PerlScript .

Впервые поддержка JScript появилась в браузере Internet Explorer 3.0, выпущенном в августе 1996 года. Его последняя версия — JScript 9.0, включенная в Internet Explorer 9.

JScript 10.0 [5] — это отдельный диалект, также известный как JScript .NET , который добавляет несколько новых функций из заброшенного четвертого издания стандарта ECMAScript. Он должен быть скомпилирован для .NET Framework версии 2 или 4, но статические аннотации типов необязательны.

JScript подвергся критике за небезопасность и наличие множества ошибок безопасности, «используемых государственными субъектами» [6] , что заставило Microsoft добавить опцию для его отключения. [7]

Сравнение с JavaScript

Как объяснил Дуглас Крокфорд в своем докладе под названием «Язык программирования JavaScript в YUI Theater»,

[Microsoft] не захотела иметь дело с Sun Microsystems по вопросу торговой марки, поэтому они назвали свою реализацию JScript. Многие думают, что JScript и JavaScript — это разные, но похожие языки. Это не так. Это просто разные названия одного и того же языка, и причина, по которой названия различаются, — это обойти проблемы торговой марки. [8]

Однако JScript поддерживает условную компиляцию , которая позволяет программисту выборочно выполнять код внутри блочных комментариев . Это расширение стандарта ECMAScript , которое не поддерживается в других реализациях JavaScript, что делает приведенное выше утверждение не совсем верным, хотя условная компиляция больше не поддерживается в режиме стандартов Internet Explorer 11.

Другие внутренние различия в реализации между JavaScript и JScript в какой-то момент времени были отмечены в Microsoft Developer Network (MSDN). [9] Значение типа по умолчанию для элемента script в Internet Explorer — JavaScript, в то время как JScript был его псевдонимом. [10] При очевидном переходе от JScript к JavaScript, в Интернете, Microsoft Edge Developer Guide ссылается на веб-библиотеку справочной информации Mozilla MDN как на свою окончательную документацию. [11] По состоянию на октябрь 2017 года страницы Microsoft MSDN для сценариев в Internet Explorer также перенаправляются туда. [12] Эта информация может не включать специфические объекты JScript, такие как Enumerator, которые перечислены в справочнике по языку JavaScript в Microsoft Docs. [13] Они предоставляют дополнительные функции, которые не включены в стандарты ECMA, независимо от того, поддерживаются ли они в браузере Edge или его предшественнике. [14]

Версии

JScript (классический COM)

Оригинальный JScript — это движок Active Scripting . Как и другие языки Active Scripting, он построен на платформе COM/OLE Automation и предоставляет возможности скриптинга для размещения приложений.

Эта версия используется при размещении JScript внутри веб-страницы, отображаемой Internet Explorer , в HTML-приложении до IE9 , а также в классических сценариях ASP , Windows Script Host и других средах автоматизации .

JScript иногда называют «классическим JScript» или «JScript с активными сценариями», чтобы отличать его от более новых версий на основе .NET.

Некоторые версии JScript доступны для нескольких версий Internet Explorer и Windows. Например, JScript 5.7 был представлен в Internet Explorer 7.0 и также устанавливается для Internet Explorer 6.0 с Windows XP Service Pack 3 , в то время как JScript 5.8 был представлен в Internet Explorer 8.0 и также устанавливается с Internet Explorer 6.0 на Windows Mobile 6.5 .

Реализация ECMAScript 5th Edition от Microsoft в Windows 8 Consumer Preview называется JavaScript , а соответствующая Visual Studio 11 Express Beta включает в себя «совершенно новый», полнофункциональный редактор JavaScript с улучшениями IntelliSense для синтаксиса HTML5 и ECMAScript 5 , аннотации «VSDOC» для множественных перегрузок, упрощенную конфигурацию DOM , сопоставление фигурных скобок, сворачиваемое структурирование и «переход к определению». [15]

JScript также доступен в Windows CE (включен в Windows Mobile, опционален в Windows Embedded CE). В версии для Windows CE отсутствует Active Debugging.

Управляемый JScript

Managed JScript — это реализация JScript для Dynamic Language Runtime , часть динамических языков Microsoft для .NET вместе с IronRuby , IronPython и Dynamic Visual Basic . В отличие от JScript .NET, который менее динамичен, чем исходный JScript, но обеспечивает совместимость с CLS , Managed JScript разработан поверх DLR и предоставляет функции, необходимые для сценариев сценариев.

Хотя в настоящее время он в первую очередь предназначен для использования в Silverlight и ASP.NET, его также можно легко встроить в любое приложение .NET. [21]

Существуют две сборки Managed JScript: одна для Desktop CLR и одна для Silverlight CoreCLR.

Управляемый JScript не поддерживается в .NET Compact Framework .

(Источник: версии файлов Microsoft.JScript.Runtime.dll в папках ASP.NET Futures и Silverlight 1.1)

JScript "Чакра" (JsRT)

JScript "Chakra" основан на версии JScript (COM classic), но он был переработан для улучшения производительности в Internet Explorer 9 [22] за счет надлежащей совместимости с движком Active Scripting. Для его надлежащего использования требуется определенный API Microsoft JavaScript Hosting (JsRT). Поэтому он устанавливается бок о бок с JScript 5.x и используется только Internet Explorer 9 и более поздними версиями, а также хостами JsRT, в то время как другие хосты Active Scripting продолжают использовать версию 5.x при запросе движка JScript.

Существует две версии движка Chakra JsRT. Первоначальная версия использовалась Internet Explorer 9 и более поздними версиями и иногда упоминается как "jscript9.dll" или "устаревший движок Chakra", а вторая версия использовалась браузером Microsoft Edge Legacy и иногда упоминается как "новый движок Chakra", "движок Edge" или "Chakra.dll". Обе версии Chakra JsRT могут использоваться другими приложениями, использующими API JsRT, и могут быть установлены бок о бок. [25]

Существует также версия COM Classic Chakra, внутренне называемая "JScript 9 Legacy" (предоставляемая jscript9Legacy.dll), представленная в Windows 11 24H2, которая возвращает совместимость с хостами Active Scripting и предназначена как совместимая замена JScript 5.8. Хотя она в значительной степени совместима с оригинальным JScript 5.8, есть заметные критические различия. [26]

См. отдельную страницу о новом движке Chakra (Edge) .

JScript .NET (CLI)

JScript .NET — это реализация JScript в Microsoft .NET . Это язык CLI , поэтому он наследует очень мощные возможности, но не имеет многих возможностей исходного языка JScript, что делает его неподходящим для многих сценариев сценариев. JScript .NET можно использовать для страниц ASP.NET и для полных приложений .NET, но отсутствие поддержки этого языка в Microsoft Visual Studio делает его скорее путем обновления классического ASP с использованием классического JScript, чем новым первоклассным языком.

JScript .NET не поддерживается в .NET Compact Framework . [ требуется ссылка ]

Примечание: Версии JScript .NET не связаны с классическими версиями JScript. JScript .NET — это отдельный продукт. Несмотря на то, что JScript .NET не поддерживается в Visual Studio IDE, его версии синхронизированы с версиями других языков .NET ( C# , VB.NET , VC++ ), которые следуют за соответствующими версиями Visual Studio.

.NET Framework 3.0 и 3.5 созданы на основе 2.0 и не включают более новую версию JScript.NET (версию 10.0 для .NET Framework 4.0).

(Источник: версия файла jsc.exe компилятора JScript.NET и Microsoft.JScript.dll, установленная с .NET Framework)

Смотрите также

Примечания

  1. ^ JScript поддерживает различные функции, не указанные в стандарте ECMA [17] , как и JavaScript.
  2. ^ Microsoft заявила, что JScript 3.0 был «первым языком сценариев, полностью соответствующим стандарту ECMA-262». [18]
  3. ^ ab JScript 5.7 включает реализацию профиля ECMAScript Compact Profile (ECMA-327), который отключает функции, не требуемые ES-CP при использовании ProgID "JScript.Compact". [ необходима ссылка ]
  4. ^ abcd JScript .NET «разрабатывается совместно с ECMAScript Edition 4». [27]

Ссылки

  1. ^ "Типы файлов скриптов". Msdn.microsoft.com. 24 октября 2011 г. Получено 17 августа 2012 г.
  2. ^ "Отключение устаревшего скриптового движка JScript в Internet Explorer". TECHCOMMUNITY.MICROSOFT.COM . 2020-10-13 . Получено 2021-11-15 .
  3. ^ "JScript (ECMAScript3)". Msdn.microsoft.com. 24 октября 2011 г. Получено 17 августа 2012 г.
  4. ^ «Что такое WSH?». Msdn.microsoft.com. 24 октября 2011 г. Получено 17 августа 2012 г.
  5. ^ Что такое JScript 10.0?
  6. ^ Чимпану, Каталин. «Microsoft добавляет возможность отключить JScript в Internet Explorer». ZDNet . Получено 15.11.2021 .
  7. ^ "Возможность отключить выполнение JScript в Internet Explorer". support.microsoft.com . Получено 15.11.2021 .
  8. ^ Дуглас Крокфорд, Язык программирования JavaScript
  9. ^ "Мир JScript, JavaScript, ECMAScript". Blogs.msdn.microsoft.com. 15 августа 2007 г. Получено 21 октября 2017 г.
  10. ^ "элемент сценария". Msdn.microsoft.com . Получено 2017-10-16 .
  11. ^ "Microsoft-Edge Dev-Guide". Docs.microsoft.com . Получено 2017-10-18 .
  12. ^ «Документируем Интернет вместе». Blogs.windows.com. 18 октября 2017 г. Получено 18 октября 2017 г.
  13. ^ "Справочник по языку JavaScript (Microsoft Docs)". Docs.microsoft.com . Получено 2017-10-18 .
  14. ^ "Объекты JavaScript (Microsoft Docs)". Docs.microsoft.com . Получено 2017-10-18 .
  15. ^ «Что нового в ASP.NET 4.5 и Visual Web Developer 11 Beta: официальный сайт Microsoft ASP.NET». 13 мая 2022 г.
    «Что нового в ASP.NET 4.5 и веб-разработке в Visual Studio 11 Beta». 12 мая 2015 г.
  16. Информация о версии (Windows Scripting – JScript), Microsoft , получено 31.05.2010
  17. ^ Microsoft JScript Features – Non-ECMA (Windows Scripting – JScript), Microsoft , получено 31.05.2010
  18. ^ Microsoft принимает стандарт сценариев ECMA Internet; выпускает первый в отрасли язык сценариев, совместимый с ECMA, JScript 3.0, в ключевых продуктах Microsoft, Microsoft, 1997-06-30, архивировано с оригинала 2009-01-12
  19. ^ Лакшман, Пратап. «Отклонения JScript от ES3» (PDF) . The Register . Situation Publishing / Microsoft . Получено 9 февраля 2020 г. .
  20. ^ «В Windows 11 22H2 есть другой способ использования движка JS? - Microsoft Q&A».
  21. ^ (Источник: блог JScript, блог Thinking Dynamic Джима Хагунина, Источник: блог Jitu)
  22. ^ Niyogi, Shanku (18 марта 2010 г.). «Новый движок JavaScript в Internet Explorer 9». IEBlog (архив) . Microsoft . Получено 19 февраля 2020 г.
  23. Информация о версии (Windows Scripting – JScript), Microsoft , получено 31.05.2010
  24. ^ "Документы поддержки стандартов Internet Explorer". Открытые спецификации (Microsoft Docs) . Microsoft . Получено 19 февраля 2020 г. .
  25. ^ "Targeting Microsoft Edge vs. Legacy Engines in JsRT APIs". Документация Microsoft Edge (Microsoft Docs) . Microsoft . Получено 19 февраля 2020 г. .
  26. ^ «В Windows 11 22H2 есть другой способ использования движка JS? - Microsoft Q&A».
  27. ^ Что такое JScript .NET?, Microsoft

Внешние ссылки