Article de reference

JavaScript

[[.js]] , .jse , [[.wsf]] , .wsc ( [[.htm]] , [[.html]] , [[HTML Application|.hta]] , [[Active Server Pages|.asp]] ) {{cite web|url=https://msdn.microsoft.com/en-us/library/67w0...

hérité de Microsoft de la norme ECMAScript qui est utilisé dans le navigateur Web Internet Explorer de Microsoft et les applications HTML , ainsi que comme langage de script Windows autonome. C'est un logiciel propriétaire .

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 ».

VersionDateIntroduit avec D'après Version JavaScript similaire
1.0Août 1996Internet Explorer 3.0Netscape JavaScript1.0
2.0Janvier 1997Windows IIS 3.0Netscape JavaScript1.1
3.0Octobre 1997Internet Explorer 4.0ECMA-262 1ère édition 1.3
4.0Visual Studio 6.0 (dans le cadre de Visual InterDev )ECMA-262 1ère édition1.3
5.0Mars 1999Internet Explorer 5.0ECMA-262 2e édition1.4
5.1Internet Explorer 5.01ECMA-262 2e édition1.4
5.5Juillet 2000Internet Explorer 5.5 et Windows CE 4.2ECMA-262 3e édition1.5
5.6Octobre 2001Internet Explorer 6.0 et Windows CE 5.0ECMA-262 3e édition1.5
5.7Novembre 2006Internet Explorer 7.0ECMA-262 3e édition + ECMA-327 (ES-CP) 1.5
5.8Mars 2009Internet Explorer 8.0 et Internet Explorer Mobile 6.0ECMA-262 3e édition + ECMA-327 (ES-CP) + JSON (RFC 4627)1.5
11.0Juin 2024Windows 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.

VersionDateIntroduit avecBasé surPlate-forme
1.0.0.02007Perspectives d'avenir d'ASP.NET (aperçu de juillet 2007)ECMA-262 3e éditionCLR 2.0 de bureau
1.1.20625.02007Microsoft Silverlight 1.1 Alpha (mise à jour de septembre 2007)ECMA-262 3e éditionCoreCLR 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)

Internet Explorer 9 au détriment de la compatibilité avec le moteur Active Scripting. Son fonctionnement requiert une API Microsoft JavaScript Hosting (JsRT) spécifique. Par conséquent, il est installé en parallèle de JScript 5.x et est utilisé uniquement par Internet Explorer 9 et versions ultérieures, ainsi que par les hôtes JsRT. Les autres hôtes Active Scripting continuent d'utiliser la version 5.x lorsqu'ils sollicitent le moteur JScript.

VersionDateIntroduit avec D’après Version JavaScript similaire
Chakra 9.0Mars 2011Internet Explorer 9.0ECMA-262 5e édition1.8.1
Chakra 10.0Septembre 2012Internet Explorer 10.0ECMA-262 5e édition
Chakra 11.0Octobre 2013Internet Explorer 11.0ECMA-262 5e édition
Bord du chakraJuillet 2015Edge [Ancienne version] / Windows 10ECMA-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)

Microsoft .NET de JScript. Langage en ligne de commande , il hérite de fonctionnalités très puissantes, mais il lui manque de nombreuses fonctionnalités du langage JScript original, ce qui le rend inadapté à de nombreux scénarios de script. JScript .NET peut être utilisé pour les pages ASP.NET et les applications .NET complètes, mais son absence de prise en charge par Microsoft Visual Studio le positionne davantage comme une solution de migration pour les applications ASP classiques utilisant JScript classique que comme un langage à part entière.

VersionPlate-formeDateIntroduit avecBasé sur
7.0CLR de bureau 1.005/01/2002.NET Framework 1.0ECMA-262 3e édition
7.1CLR de bureau 1.12003-04-01.NET Framework 1.1ECMA-262 3e édition
8.0CLR 2.0 de bureau2005-11-07.NET Framework 2.0ECMA-262 3e édition
10.0CLR 4.0 de bureau2010-08-03.NET Framework 4.0ECMA-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)