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 : 280834
  • Créé :
  • Créateur : BenoitL
  • Version actuelle ? Non
  • Commentaire /* Suppléments pour les tableaux */

Contenu de la révision

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'index de la première occurence d'un élément donné.
  • lastIndexOf() - renvoie l'index 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 un des éléments.

Pour plus d'informations, voir l'article de Nicholas C. Zakas, les nouvelles méthodes de tableau dans Mozilla.

Tableau et chaîne de caractères génériques

Des fois que vous voudriez appliquer des méthodes de tableau à des chaînes, celles-ci traitent une chaîne comme un tableau de caractères. Par exemple, dans le but de vérifier si chaque caractère dans la variable str est une lettre, vous pourriez écrire :

function isLetter(character) {
  return (character >= "a" && character <= "z");
}

if (Array.prototype.every.call(str, isLetter))
  alert("La chaine '" + str + "' contient seulement des lettres !");

Cette notation est plutôt coûteuse et JavaScript 1.6 introduit un raccourci générique :

if (Array.every(str, isLetter))
  alert("La chaine '" + str + "' contient seulement des lettres !");

De même, vous pouvez facilement appliquer des méthodes de chaîne à un objet :

var num = 15;
alert(String.replace(num, /5/, '2'));

Catégorie

Interwiki

{{ wiki.languages( { "en": "en/New_in_JavaScript_1.6" } ) }}

Source de la révision

<p>
</p>
<h3 name="E4X"> E4X </h3>
<p>ECMAScript For XML (<a href="Special:Tags?tag=E4X&amp;language=fr">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/JS/Objects/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/JS/Objects/Array/indexOf">indexOf()</a></code> - renvoie l'index de la première occurence d'un élément donné.
</li><li> <code><a href="fr/JS/Objects/Array/lastIndexOf">lastIndexOf()</a></code> - renvoie l'index 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/Core_JavaScript_1.5_Reference/Objects/Array/every">every()</a></code> - exécute une fonction sur chaque élément du tableau et renvoie true si la fonction renvoie true pour tous les éléments.
</li><li> <code><a href="fr/Core_JavaScript_1.5_Reference/Objects/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 true.
</li><li> <code><a href="fr/Core_JavaScript_1.5_Reference/Objects/Array/forEach">forEach()</a></code> - exécute une fonction sur chaque élément du tableau.
</li><li> <code><a href="fr/Core_JavaScript_1.5_Reference/Objects/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/Core_JavaScript_1.5_Reference/Objects/Array/some">some()</a></code> - exécute une fonction sur chaque élément du tableau et renvoie true si la fonction renvoie true pour un des éléments.
</li></ul>
<p>Pour plus d'informations, voir l'article de Nicholas C. Zakas, <span class="exlink"><a href="fr/Mozilla's_New_Array_Methods_(externe)">les nouvelles méthodes de tableau dans Mozilla</a></span>.
</p>
<h3 name="Tableau_et_cha.C3.AEne_de_caract.C3.A8res_g.C3.A9n.C3.A9riques"> Tableau et chaîne de caractères génériques </h3>
<p>Des fois que vous voudriez appliquer des méthodes de tableau à des chaînes, celles-ci traitent une chaîne comme un tableau de caractères. Par exemple, dans le but de vérifier si chaque caractère dans la variable <var>str</var> est une lettre, vous pourriez écrire :
</p>
<pre>function isLetter(character) {
  return (character &gt;= "a" &amp;&amp; character &lt;= "z");
}

if (Array.prototype.every.call(str, isLetter))
  alert("La chaine '" + str + "' contient seulement 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, isLetter))
  alert("La chaine '" + str + "' contient seulement des lettres !");
</pre>
<p>De même, vous pouvez facilement appliquer des méthodes de chaîne à un objet :
</p>
<pre>var num = 15;
alert(String.replace(num, /5/, '2'));
</pre>
<p><span class="comment">Catégorie</span>
</p><p><span class="comment">Interwiki</span>
</p>{{ wiki.languages( { "en": "en/New_in_JavaScript_1.6" } ) }}
Revenir à cette révision