JScript est implémenté comme un moteur de script actif . Cela signifie qu'il peut être intégré aux applications d'automatisation OLE prenant en charge le script actif, telles qu'Internet Explorer , les pages ASP et Windows Script Host . Cela signifie également que ces applications peuvent utiliser plusieurs langages de script actif, par exemple JScript, VBScript ou PerlScript .
JScript a été pris en charge pour la première fois dans le navigateur Internet Explorer 3.0, sorti en août 1996. Sa version la plus récente est JScript 9.0, incluse dans Internet Explorer 9.
JScript 10.0 est un dialecte distinct, également appelé JScript .NET , qui ajoute plusieurs nouvelles fonctionnalités issues de la quatrième édition abandonnée de la norme ECMAScript. Il doit être compilé pour .NET Framework version 2 ou 4, mais les annotations de type statique sont facultatives.
JScript a été critiqué pour son manque de sécurité et ses nombreuses failles de sécurité « exploitées par des acteurs étatiques », ce qui a conduit Microsoft à ajouter une option pour le désactiver.
Douglas Crockford dans sa conférence intitulée « Le langage de programmation JavaScript » sur YUI Theater,Microsoft ne souhaitait pas traiter avec Sun Microsystems au sujet du problème de marque déposée et a donc nommé son implémentation JScript. Beaucoup pensent que JScript et JavaScript sont des langages différents mais similaires. Ce n'est pas le cas. Il s'agit simplement de noms différents pour le même langage, et la raison de cette différence de noms était de contourner les problèmes de marques déposées.
Cependant, JScript prend en charge la compilation conditionnelle, ce qui permet d'exécuter sélectivement du code à l'intérieur des commentaires de bloc . Il s'agit d'une extension de la norme ECMAScript non prise en charge par d'autres implémentations JavaScript, ce qui rend l'affirmation précédente inexacte, même si la compilation conditionnelle n'est plus prise en charge en mode Standard d'Internet Explorer 11.
D'autres différences d'implémentation interne entre JavaScript et JScript sont mentionnées sur le Microsoft Developer Network (MSDN). La valeur par défaut du type de l'élément script dans Internet Explorer est JavaScript, tandis que JScript était son alias. Dans une transition apparente de JScript vers JavaScript, le guide du développeur Microsoft Edge [Legacy] en ligne renvoie à la bibliothèque de référence web Mozilla MDN comme documentation de référence. Depuis octobre 2017, les pages Microsoft MSDN relatives aux scripts dans Internet Explorer y sont également redirigées. Ces informations peuvent ne pas inclure les objets spécifiques à JScript, tels que Enumerator, qui sont répertoriés dans la documentation de référence du langage JavaScript sur Microsoft Docs. Ces objets offrent des fonctionnalités supplémentaires non incluses dans les normes ECMA, qu'elles soient prises en charge par le navigateur Edge [Legacy] ou son prédécesseur.
Versions
JScript (COM classique)
JScript d'origine est un moteur de script actif . Comme les autres langages de script actif, il est basé sur la plateforme d'automatisation COM/OLE et offre des fonctionnalités de script aux applications hôtes.
Il s'agit de la version utilisée lors de l'hébergement de JScript dans une page Web affichée par Internet Explorer , dans une application HTML antérieure à IE9 , ainsi que dans les scripts ASP classiques , les scripts Windows Script Host et d'autres environnements d'automatisation .
JScript est parfois appelé « JScript classique » ou « JScript de script actif » pour le différencier des versions plus récentes basées sur .NET .
Certaines versions de JScript sont disponibles pour plusieurs versions d'Internet Explorer et de Windows. Par exemple, JScript 5.7 a été introduit avec Internet Explorer 7.0 et est également installé avec Internet Explorer 6.0 sous Windows XP Service Pack 3 , tandis que JScript 5.8 a été introduit avec Internet Explorer 8.0 et est également installé avec Internet Explorer 6.0 sous Windows Mobile 6.5 .
L'implémentation par Microsoft d'ECMAScript 5e édition dans Windows 8 Consumer Preview est appelée JavaScript et la version bêta correspondante de Visual Studio 11 Express inclut un éditeur JavaScript « entièrement nouveau » et complet avec des améliorations IntelliSense pour la syntaxe HTML5 et ECMAScript 5 , des annotations « VSDOC » pour les surcharges multiples, une configuration DOM simplifiée , la correspondance des accolades, un plan repliable et la fonction « Aller à la définition ».
| Version | Date | Introduit avec | D'après | Version JavaScript similaire |
|---|---|---|---|---|
| 1.0 | Août 1996 | Internet Explorer 3.0 | Netscape JavaScript | 1.0 |
| 2.0 | Janvier 1997 | Windows IIS 3.0 | Netscape JavaScript | 1.1 |
| 3.0 | Octobre 1997 | Internet Explorer 4.0 | ECMA-262 1ère édition | 1.3 |
| 4.0 | Visual Studio 6.0 (dans le cadre de Visual InterDev ) | ECMA-262 1ère édition | 1.3 | |
| 5.0 | Mars 1999 | Internet Explorer 5.0 | ECMA-262 2e édition | 1.4 |
| 5.1 | Internet Explorer 5.01 | ECMA-262 2e édition | 1.4 | |
| 5.5 | Juillet 2000 | Internet Explorer 5.5 et Windows CE 4.2 | ECMA-262 3e édition | 1.5 |
| 5.6 | Octobre 2001 | Internet Explorer 6.0 et Windows CE 5.0 | ECMA-262 3e édition | 1.5 |
| 5.7 | Novembre 2006 | Internet Explorer 7.0 | ECMA-262 3e édition + ECMA-327 (ES-CP) | 1.5 |
| 5.8 | Mars 2009 | Internet Explorer 8.0 et Internet Explorer Mobile 6.0 | ECMA-262 3e édition + ECMA-327 (ES-CP) + JSON (RFC 4627) | 1.5 |
| 11.0 | Juin 2024 | Windows 11 version 24H2 | (JScript 9 Legacy, conçu comme un remplacement compatible pour JScript 5.8, mais pas 100% compatible ) | 1.5 |
JScript est également disponible sur Windows CE (inclus dans Windows Mobile, optionnel dans Windows Embedded CE). La version Windows CE ne prend pas en charge le débogage actif.
JavaScript géré
Managed JScript est une implémentation de JScript pour le Dynamic Language Runtime (DLR) . Il fait partie des langages dynamiques de Microsoft pour .NET, aux côtés d'IronRuby , d'IronPython et de Dynamic Visual Basic . Contrairement à JScript .NET, moins dynamique que le JScript original mais compatible avec l' interface de ligne de commande (CLI), Managed JScript est conçu sur le DLR et offre les fonctionnalités nécessaires aux scénarios de script.
Bien qu'il soit principalement conçu pour être utilisé dans Silverlight et ASP.NET pour le moment, il peut également être facilement intégré dans n'importe quelle application .NET.
Il existe deux versions de Managed JScript : une pour le Common Language Runtime (CLR) de bureau et une pour le CoreCLR de Silverlight.
| Version | Date | Introduit avec | Basé sur | Plate-forme |
|---|---|---|---|---|
| 1.0.0.0 | 2007 | Perspectives d'avenir d'ASP.NET (aperçu de juillet 2007) | ECMA-262 3e édition | CLR 2.0 de bureau |
| 1.1.20625.0 | 2007 | Microsoft Silverlight 1.1 Alpha (mise à jour de septembre 2007) | ECMA-262 3e édition | CoreCLR 1.1 |
JScript managé n'est pas pris en charge dans le .NET Compact Framework .
(Source : versions des fichiers Microsoft.JScript.Runtime.dll dans les dossiers ASP.NET Futures et Silverlight 1.1)
JScript "Chakra" (JsRT)
| Version | Date | Introduit avec | D’après | Version JavaScript similaire |
|---|---|---|---|---|
| Chakra 9.0 | Mars 2011 | Internet Explorer 9.0 | ECMA-262 5e édition | 1.8.1 |
| Chakra 10.0 | Septembre 2012 | Internet Explorer 10.0 | ECMA-262 5e édition | |
| Chakra 11.0 | Octobre 2013 | Internet Explorer 11.0 | ECMA-262 5e édition | |
| Bord du chakra | Juillet 2015 | Edge [Ancienne version] / Windows 10 | ECMA-262, 5e à 9e édition (2018) (Maintenu à jour sans gestion des versions du moteur) |
Il existe deux versions du moteur Chakra JsRT. La version originale, utilisée par Internet Explorer 9 et versions ultérieures, est parfois appelée « jscript9.dll » ou « moteur Chakra hérité ». La seconde, utilisée par le navigateur Microsoft Edge Legacy , est parfois appelée « nouveau moteur Chakra », « moteur Edge » ou « Chakra.dll ». Les deux versions de Chakra JsRT peuvent être utilisées par d’autres applications exploitant l’API JsRT et installées simultanément.
Il existe également une version COM Classic de Chakra, appelée en interne « JScript 9 Legacy » (fournie par jscript9Legacy.dll), introduite avec Windows 11 24H2, qui rétablit la compatibilité avec les hôtes Active Scripting et est conçue comme un remplacement compatible et direct de JScript 5.8. Bien que largement compatible avec la version originale de JScript 5.8, il existe des différences notables.
Voir la page séparée concernant le nouveau moteur Chakra (Edge) .
JScript .NET (CLI)
| Version | Plate-forme | Date | Introduit avec | Basé sur |
|---|---|---|---|---|
| 7.0 | CLR de bureau 1.0 | 05/01/2002 | .NET Framework 1.0 | ECMA-262 3e édition |
| 7.1 | CLR de bureau 1.1 | 2003-04-01 | .NET Framework 1.1 | ECMA-262 3e édition |
| 8.0 | CLR 2.0 de bureau | 2005-11-07 | .NET Framework 2.0 | ECMA-262 3e édition |
| 10.0 | CLR 4.0 de bureau | 2010-08-03 | .NET Framework 4.0 | ECMA-262 3e édition |
JScript .NET n'est pas pris en charge dans le .NET Compact Framework .C# , VB.NET , VC++ ) qui suivent leurs versions correspondantes de Visual Studio.
.NET Framework 3.0 et 3.5 sont basés sur 2.0 et n'incluent pas la version plus récente de JScript.NET (version 10.0 pour .NET Framework 4.0).
(Source : version fichier du compilateur JScript.NET jsc.exe et de Microsoft.JScript.dll installés avec .NET Framework)