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 : 280832
  • Créé :
  • Créateur : Chbok
  • Version actuelle ? Non
  • Commentaire Petites corrections de typo

Contenu de la révision

E4X

ECMAScript For XML (E4X) est une technologie puissante pour créer et traiter du contenu XML dans du 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 créant des applications web basées sur le XML peuvent déjà bénéficier du support E4X dans Firefox 1.5.

Vous pouvez encore utiliser le type MIME standard 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 disposer des scripts au sein de sections XML CDATA (<[CDATA{{mediawiki.external('...')}}]>) pour autoriser les symboles "<" et ">" dans le script (notez que cela ne fonctionne pas dans le HTML). Si vous voyez des erreurs de syntaxes 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ément et les méthodes itératives. Les méthodes de localisation d'élément sont :

  • indexOf() - retourne l'index de la première occurence d'un élément donné.
  • lastIndexOf() - retourne 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 retourne true si la fonction retourne 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 retourne true.
  • forEach() - exécute une fonction sur chaque élément du tableau.
  • map() - exécute une fonction sur chaque élément du tableau et retourne les résultats dans un tableau.
  • some() - exécute une fonction sur chaque élément du tableau et retourne true si la fonction retourne 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 pour créer et traiter du contenu <a href="fr/XML">XML</a> dans du <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 créant des applications web basées sur le XML peuvent déjà bénéficier du support E4X dans Firefox 1.5.
</p><p>Vous pouvez encore utiliser le type MIME standard 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 disposer des scripts au sein de sections XML CDATA (<code>&lt;[CDATA{{mediawiki.external('...')}}]&gt;</code>) pour autoriser les symboles "&lt;" et "&gt;" dans le script (notez que cela ne fonctionne pas dans le HTML). Si vous voyez des erreurs de syntaxes inexplicables, ajoutez "; e4x=1" 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/Core_JavaScript_1.5_Reference/Objects/Array">Array</a></code> qui peuvent être séparées en deux catégories, les méthodes de localisation d'élément et les méthodes itératives. Les méthodes de localisation d'élément sont :
</p>
<ul><li> <code><a href="fr/Core_JavaScript_1.5_Reference/Objects/Array/indexOf">indexOf()</a></code> - retourne l'index de la première occurence d'un élément donné.
</li><li> <code><a href="fr/Core_JavaScript_1.5_Reference/Objects/Array/lastIndexOf">lastIndexOf()</a></code> - retourne 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 retourne true si la fonction retourne 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 retourne 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 retourne 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 retourne true si la fonction retourne 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