Cette page présente le journal des modifications (changelog) pour JavaScript 1.8. Cette version de Javascript a été introduite dans Firefox 3 avec Gecko 1.9. Consultez le bug 380236 pour suivre les progrès du développement de JavaScript 1.8.
Utilisation de JavaScript 1.8
Afin d'utiliser certaines des nouvelles fonctionnalités de JavaScript 1.8, utilisez :
<script type="application/javascript;version=1.8"> ... votre code ... </script>
Une autre méthode (non recommandée) consiste à utiliser l'attribut déprécié language
de la balise <script>
avec la valeur « JavaScript1.8 ».
Lorsque vous utilisez le shell JavaScript, des composants XPCOM JavaScript ou des éléments <script>
XUL, la dernière version de JavaScript (JavaScript 1.8 dans Mozilla 1.9) est utilisée automatiquement (cf. bug 381031, bug 385159).
Pour utiliser les fonctionnalités nécessitant l'utilisation des nouveaux mots-clés « yield
» et « let
», la version 1.7 ou supérieure doit être spécifiée, car du code existant peut utiliser ces mots-clés comme noms de variables ou de fonctions. Les fonctionnalités qui n'utilisent pas de nouveaux mots-clés (comme les expressions génératrices) peuvent être utilisés sans préciser la version de JavaScript.
Nouvelles fonctionnalités dans JavaScript 1.8
Expressions de fermetures
(Expression Closures).- Expression génératrices. Facilite la création de générateurs (introduits avec JavaScript 1.7). Auparavant pour créer un générateur il fallait écrire une fonction contenant l'instruction
yield
. Les expressions génératrices permettent de créer le même générateur à l'aide d'une syntaxe proche d'une liste en compréhension. Array.prototype.reduce()
Array.prototype.reduceRight()
Changements apportés par JavaScript 1.8
Affectation par décomposition dans les boucles for...in
L'une des modifications apportées par JavaScript 1.8 est la correction d'un bug lié à l'Affection par décomposition de tableaux
, introduite avec JavaScript 1.7. Il était auparavant possible de décomposer les clés et valeurs d'un tableau avec la syntaxe for ( var [clé, valeur] in tableau )
. Cela rendait cependant impossible la décomposition des valeurs d'un tableau de tableaux. Ce bug a été résolu (bug 366941), et la syntaxe a utiliser est devenue la suivante : for ( var [clé, valeur] in Iterator(tableau))
.