Nouveautés dans JavaScript 1.6
Parmi les nouveautés qu’apporte Firefox 1.5, il en est une que j’ai bètement passé sous silence dans le
billet Nouveautés dans Firefox 1.5
:
Le passage de JavaScript en version 1.6, imposé par l’arrivée de certaines nouveautés. Rappelé à l’ordre par
Benoit, me voilà contraint de détailler dans ce billet les nouveautés en question ;¬)
ECMAScript for XML
De son petit nom, E4X. E4X est standardisé par l’Ecma sous l’appellation ECMA-357 et ajoute un support natif du XML dans l’ECMAScript (la version normalisée du cœur de JavaScript). Grâce à une syntaxe simple et intuitive, E4X se veut une alternative crédible aux méthodes DOM classiques d’accés à un document XML. Quelques exemples :
var xmlObject = new XML("<items>
<item val="attrVal">essai1</item>
<item>essai2</item>
<item>essai3</item>
</items>");
alert(xmlObject.text()); // affiche essai1 essai2 essai3 (avec les sauts de ligne et indentation)
var itemList = xmlObject.item;
alert(itemList); /* affiche
<item val="attrVal">essai1</item>
<item>essai2</item>
<item>essai3</item> */
alert(itemList.length); // affiche 3
alert(itemList[0].@val); // affiche attrVal
// Utiliser E4X en conjonction avec le DOM ? C’est possible !
xmlObject = new XML(document); // ou n’importe quel autre nœud DOM
Ce ne sont que de brefs exemples. Consultez les liens suivants pour en savoir plus :
- ECMA-357 (La spec. officielle, probablement imbuvable pour le commun des mortels)
- Une présentation par Brendan Eich, architecte en chef chez Mozilla (L’inventeur de JavaScript)
- Zone dédiée à E4X sur DevMo
- FAQ dédiée sur faqts.com
Méthodes sur les objets Array
De nouvelles méthodes font leur apparition sur les tableaux JavaScript. Les méthodes indexOf()
et lastIndexOf()
sur un tableau permettent désormais de récupérer l’index d’une valeur donnée,
éventuellement en partant d’un index donné. Exemples :
var aColors = ["rouge", "bleu", "vert", "orange", "violet", "vert", "marron"];
alert(aColors.indexOf("vert")); // affiche 2
alert(aColors.lastIndexOf("vert")); // affiche 5
// En spécifiant un index de départ
alert(aColors.indexOf("vert", 3)); // affiche 5
alert(aColors.lastIndexOf("vert", 4)); // affiche 2
alert(aColors.indexOf("blanc")); // affiche -1, cette valeur n’est pas présente dans le tableau
Cinq méthodes sont maintenant utilisables pour appeler une fonction sur chaque entrée d’un tableau.
every(callback[, thisObject])
- Applique la fonction callback sur chaque entrée du tableau et renvoie
true
si la fonction callback a renvoyétrue
pour chaque entrée filter(callback[, thisObject])
- Applique la fonction callback sur chaque entrée du tableau et renvoie un tableau contenant
les entrées pour lesquelles la fonction callback a renvoyé
true
forEach(callback[, thisObject])
- Applique la fonction callback sur chaque entrée du tableau
map(callback[, thisObject])
- Idem que
forEach()
, mais la fonction callback est appliquée sur une copie du tableau, la-dite copie étant ensuite retournée parmap()
some(callback[, thisObject])
- Idem que la méthode
every()
sauf que cette méthode renvoietrue
si la fonction callback a renvoyétrue
pour au moins une des entrées du tableau
Consultez les liens suivants pour plus de détails :
Il y a aussi une section Array and String generics
dans la page
New in JavaScript 1.6
mais vide pour l’instant. Je complèterai donc ce
billet ultérieurement.