Nouveautés dans JavaScript 1.6
Un article de MDC.
JavaScript 1.6 introduit plusieurs nouvelles fonctionnalités : E4X, plusieurs nouvelles méthodes pour Array, et des méthodes génériques pour Array et String.
JavaScript 1.6 est disponible dans les versions Firefox 1.5 et supérieures.
Sommaire |
[modifier] E4X
ECMAScript For XML (E4X) est une technologie puissante permettant de créer et de traiter du contenu XML directement au sein de JavaScript. Nous allons continuer à améliorer notre support E4X, y compris en ajoutant une intégration transparente avec le DOM existant, mais les développeurs d'applications Web basées sur XML peuvent déjà bénéficier du support E4X dans Firefox 1.5.
Le type MIME habituel peut toujours être utilisé quand vous utilisez E4X :
<script type="text/javascript">
Néanmoins, la syntaxe E4X peut créer des conflits avec la pratique usuelle qui est de disposer des scripts dans du commentaire HTML (<!--...-->) pour les dissimuler aux anciens navigateurs. E4X peut également créer des conflits avec la pratique plus récente qui est de placer des scripts au sein de sections XML CDATA (<![CDATA[...]]>) dans le but d'autoriser les symboles « < » et « > » dans le script (notez que cela ne fonctionne pas en HTML). Si vous voyez des erreurs de syntaxe inexplicables, ajoutez « ; e4x=1 » au type MIME :
<script type="text/javascript; e4x=1">
Notez que les scripts dans les extensions traitent toujours les commentaires HTML comme des littéraux E4X, c'est-à-dire que le « e4x=1 » est implicite.
[modifier] Suppléments pour les tableaux
Il y a sept nouvelles méthodes Array qui peuvent être séparées en deux catégories, les méthodes de localisation d'éléments et les méthodes itératives. Les méthodes de localisation d'élément sont :
-
indexOf()— renvoie l'indice de la première occurrence d'un élément donné. -
lastIndexOf()— renvoie l'indice de la dernière occurence d'un élément donné.
Les méthodes itératives sont :
-
every()— exécute une fonction sur chaque élément du tableau et renvoietruesi la fonction renvoietruepour tous les éléments. -
filter()— exécute une fonction sur chaque élément du tableau et retourne un tableau de tous les éléments pour lesquels la fonction renvoietrue. -
forEach()— exécute une fonction sur chaque élément du tableau. -
map()— exécute une fonction sur chaque élément du tableau et renvoie les résultats dans un tableau. -
some()— exécute une fonction sur chaque élément du tableau et renvoietruesi la fonction renvoietruepour au moins un des éléments.
Pour plus d'informations, voir l'article de Nicholas C. Zakas, Mozilla's New Array Methods.
[modifier] Méthodes génériques des chaînes et des tableaux
Il arrive de vouloir appliquer des méthodes de tableaux (Array) à des chaînes (String). En faisant cela, on traite les chaînes comme des tableaux de caractères. Par exemple, afin de vérifier si chaque caractère dans la variable str est une lettre, on pourrait écrire :
function estUneLettre(caractere) {
return (caractere >= "a" && caractere <= "z");
}
if (Array.prototype.every.call(str, estUneLettre))
alert("La chaîne '" + str + "' contient uniquement des lettres.");
Cette notation est plutôt coûteuse et JavaScript 1.6 introduit un raccourci générique :
if (Array.every(str, estUneLettre))
alert("La chaîne '" + str + "' contient uniquement des lettres.");
De même, vous pouvez facilement appliquer des méthodes de chaîne à un objet quelconque :
var nombre = 15; alert(String.replace(nombre, /5/, '2'));
[modifier] Voir aussi
Nouvelles fonctionnalités de JavaScript 1.7 introduites dans Firefox 2.