Nouveautés dans JavaScript 1.6

  • Raccourci de la révision : Nouveautés_dans_JavaScript_1.6
  • Titre de la révision : Nouveautés dans JavaScript 1.6
  • ID de la révision : 280841
  • Créé :
  • Créateur : BenoitL
  • Version actuelle ? Non
  • Commentaire /* Suppléments pour les tableaux */

Contenu de la révision

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.

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{{mediawiki.external('...')}}]>) 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.

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 renvoie true si la fonction renvoie true pour 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 renvoie true.
  • 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 renvoie true si la fonction renvoie true pour au moins un des éléments.

Pour plus d'informations, voir l'article de Nicholas C. Zakas, Mozilla's New Array Methods.

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'));

Voir aussi

Nouvelles fonctionnalités de JavaScript 1.7 introduites dans Firefox 2.

Catégorie

Interwiki

{{ wiki.languages( { "en": "en/New_in_JavaScript_1.6", "ja": "ja/New_in_JavaScript_1.6", "pl": "pl/Nowo\u015bci_w_JavaScript_1.6" } ) }}

Source de la révision

<p>
JavaScript 1.6 introduit plusieurs nouvelles fonctionnalités : E4X, plusieurs nouvelles méthodes pour <code>Array</code>, et des méthodes génériques pour Array et String.
</p><p>JavaScript 1.6 est disponible dans les versions <a href="fr/Firefox_1.5">Firefox 1.5</a> et supérieures.
</p>
<h3 name="E4X"> E4X </h3>
<p>ECMAScript For XML (<a href="fr/E4X">E4X</a>) est une technologie puissante permettant de créer et de traiter du contenu <a href="fr/XML">XML</a> directement au sein de <a href="fr/JavaScript">JavaScript</a>. Nous allons continuer à améliorer notre support E4X, y compris en ajoutant une intégration transparente avec le <a href="fr/DOM">DOM</a> 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.
</p><p>Le type MIME habituel peut toujours être utilisé quand vous utilisez E4X :
</p>
<pre>&lt;script type="text/javascript"&gt;
</pre>
<p>Néanmoins, la syntaxe E4X peut créer des conflits avec la pratique usuelle qui est de disposer des scripts dans du commentaire HTML (<code><span class="plain">&lt;!--...--&gt;</span></code>) 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 (<code>&lt;![CDATA{{mediawiki.external('...')}}]&gt;</code>) dans le but d'autoriser les symboles « &lt; » et « &gt; » dans le script (notez que cela ne fonctionne pas en HTML). Si vous voyez des erreurs de syntaxe inexplicables, ajoutez « <code>; e4x=1</code> » au type MIME :
</p>
<pre>&lt;script type="text/javascript; e4x=1"&gt;
</pre>
<p>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.
</p>
<h3 name="Suppl.C3.A9ments_pour_les_tableaux"> Suppléments pour les tableaux </h3>
<p>Il y a sept nouvelles méthodes <code><a href="fr/R%c3%a9f%c3%a9rence_de_JavaScript_1.5_Core/Objets_globaux/Array">Array</a></code> 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 :
</p>
<ul><li> <code><a href="fr/R%c3%a9f%c3%a9rence_de_JavaScript_1.5_Core/Objets_globaux/Array/indexOf">indexOf()</a></code> — renvoie l'indice de la première occurrence d'un élément donné.
</li><li> <code><a href="fr/R%c3%a9f%c3%a9rence_de_JavaScript_1.5_Core/Objets_globaux/Array/lastIndexOf">lastIndexOf()</a></code> — renvoie l'indice de la dernière occurence d'un élément donné.
</li></ul>
<p>Les méthodes itératives sont :
</p>
<ul><li> <code><a href="fr/R%c3%a9f%c3%a9rence_de_JavaScript_1.5_Core/Objets_globaux/Array/every">every()</a></code> — exécute une fonction sur chaque élément du tableau et renvoie <code>true</code> si la fonction renvoie <code>true</code> pour tous les éléments.
</li><li> <code><a href="fr/R%c3%a9f%c3%a9rence_de_JavaScript_1.5_Core/Objets_globaux/Array/filter">filter()</a></code> — exécute une fonction sur chaque élément du tableau et retourne un tableau de tous les éléments pour lesquels la fonction renvoie <code>true</code>.
</li><li> <code><a href="fr/R%c3%a9f%c3%a9rence_de_JavaScript_1.5_Core/Objets_globaux/Array/forEach">forEach()</a></code> — exécute une fonction sur chaque élément du tableau.
</li><li> <code><a href="fr/R%c3%a9f%c3%a9rence_de_JavaScript_1.5_Core/Objets_globaux/Array/map">map()</a></code> — exécute une fonction sur chaque élément du tableau et renvoie les résultats dans un tableau.
</li><li> <code><a href="fr/R%c3%a9f%c3%a9rence_de_JavaScript_1.5_Core/Objets_globaux/Array/some">some()</a></code> — exécute une fonction sur chaque élément du tableau et renvoie <code>true</code> si la fonction renvoie <code>true</code> pour au moins un des éléments.
</li></ul>
<p>Pour plus d'informations, voir l'article de Nicholas C. Zakas, <a class="external" href="http://www.webreference.com/programming/javascript/ncz/column4/index.html">Mozilla's New Array Methods</a>.
</p>
<h3 name="M.C3.A9thodes_g.C3.A9n.C3.A9riques_des_cha.C3.AEnes_et_des_tableaux"> Méthodes génériques des chaînes et des tableaux </h3>
<p>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 <var>str</var> est une lettre, on pourrait écrire :
</p>
<pre>function estUneLettre(caractere) {
  return (caractere &gt;= "a" &amp;&amp; caractere &lt;= "z");
}

if (Array.prototype.every.call(str, estUneLettre))
  alert("La chaîne '" + str + "' contient uniquement des lettres.");
</pre>
<p>Cette notation est plutôt coûteuse et JavaScript 1.6 introduit un raccourci générique :
</p>
<pre>if (Array.every(str, estUneLettre))
  alert("La chaîne '" + str + "' contient uniquement des lettres.");
</pre>
<p>De même, vous pouvez facilement appliquer des méthodes de chaîne à un objet quelconque :
</p>
<pre>var nombre = 15;
alert(String.replace(nombre, /5/, '2'));
</pre>
<h3 name="Voir_aussi"> Voir aussi </h3>
<p>Nouvelles fonctionnalités de <a href="fr/Nouveaut%c3%a9s_dans_JavaScript_1.7">JavaScript 1.7</a> introduites dans <a href="fr/Firefox_2">Firefox 2</a>.
</p><p><span class="comment">Catégorie</span>
</p><p><span class="comment">Interwiki</span>
</p>{{ wiki.languages( { "en": "en/New_in_JavaScript_1.6", "ja": "ja/New_in_JavaScript_1.6", "pl": "pl/Nowo\u015bci_w_JavaScript_1.6" } ) }}
Revenir à cette révision