« Programmation JavaScript/Expression littérale » : différence entre les versions

Contenu supprimé Contenu ajouté
Gmarzin (discussion | contributions)
Aucun résumé des modifications
 
Gmarzin (discussion | contributions)
Aucun résumé des modifications
Ligne 1 :
[[programmation javascript sommaire détaillé| << Retour au sommaire détaillé]]
 
Dans un programme javascript, il est courant de devoir introduire des données sous forme littérale. Celà se produit principalement quand on renseigne une variable, ou quand on appelle une fonction.<br/>
Ce qui suit est valide pour le code javascript écrit dans les fichiers externes, ou entre les balises &lt;script&gt; &lt;/script&gt;. En ce qui concerne le code associé aux évennements (onclick, onload...), le traitement est différent.
 
<pre>
ma_var = "une chaîne exprimée littéralement";
mon_nombre = 12; // un nombre littéral;
alert("Ce message est une chaîne littérale");
</pre>
Ces expressions littérales peuvent être des chaînes, des nombres ou des dates.<br/>
==Les chaînes sous forme littérale==
Elles sont constituées de lettres, chiffres, ponctuation et symboles avec un mécanisme (échappement) permettant d'étendre cet ensemble à des caractères de contrôle, de formatage et des caractères spéciaux.<br/>
Une chaîne exprimée sous forme littérale est délimitée par des guillemets double ( " ) ou simple ( ' ).<br/>
La rêgle veut qu'une chaîne ouverte avec un guillemet double doit être fermée avec un guillemet double. De même, une chaîne ouverte avec un guillemet simple doit être fermée avec un guillemet simple.<br/>
La première complication se produit quand nous désirons inclure des guillemets dans notre chaîne.<br/>
Appelons une fonction avec une chaîne en paramètre :
<div style="color:red;border:1px dotted black;padding:5px">
alert("le titre de l'article : "les joies de l'informatique""); // ne marche pas
</div>
... à la place, on peut écrire:
<pre>
alert("le titre de l'article : " + '"' + "les joies de l'informatique" + '"' );
</pre>
... mais c'est affreux.
Pour utiliser une solution élégante, nous avons recours au mécanisme d'échappement.
 
===Le mécanisme d'échappement===
Le mécanisme d'échappement consiste à inclure dans les chaînes, des anti-slash (\) suivis d'un caractère choisi pour sa fonction. <br/>
les caractères échappés sont en nombre limités et facile à mettre en oeuvre :
====L'échappement des guillemets simples (\') ou double (\")====
Précédé d'un anti-slash, les guillemets ne feront plus office de délimiteur de chaîne, et ceci permet de les inclure comme de simples symboles de ponctuation.
<pre>
alert("Mon nom est \"personne\""); // affiche : Mon nom est "Personne"
</pre>
 
====Le retour à la ligne avec \n====
Il peut être utile de formater une chaîne en la présentant sur plusieurs lignes. La séquence d'échappement \n réalise celà. Elle inclus en effet le caractère de contrôle "linefeed" (valeur 10 en décimal, 0A en hexadécimal) qui réalise le retour à la ligne ave la plupart des navigateurs graphique.
<pre>
alert("première, \ndeuxième \net troisième ligne");
</pre>
... affiche <br/>
première,<br/>
deuxième<br/>
et troisième ligne<br/>
 
====La tabulation avec \t====
La séquence d'échappement \t insère un caractère de tabulation dans la chaîne, et permet ainsi de formater l'affichage. Le caractère de tabulation est codé 9 en décimal et 09 en héxadécimal.
<pre>
alert("colonne 1 \tcolonne 2 \tcolonne 3");
</pre>
 
====L'inclusion de caractères unicode avec \u====
Javascript, quand il est codé dans un fichier distinct, ou quand il est codé entre les balises &lt;script&gt; &lt/script&gt; ne supporte pas les entités de la forme &amp;lt; ou &amp;#160;, ou toute autre forme d'entité.<br/>
L'échappement '''\u''' offre un mécanisme de remplacement dont la mise en oeuvre nécessite de se référer à une table associant les codes héxadécimaux au symboles correspondant. [http://fr.wikipedia.org/wiki/Table_des_caract%C3%A8res_unicode%2C_de_0_%C3%A0_4095 (par exemple)]
<br/>
Ces codes héxadécimaux sont présentés avec 4 digit, et la séquence d'échappement \u nécessite d'écrire les 4 digit sous peine d'un déclenchement d'erreur.<br/>
<pre>
alert("Rodrigue as-tu du c\u0153ur?");
</pre>
... affiche Rodrigue as-tu du c'''&#339;'''ur?<br/>
ce qui est plus conforme à l'original que l'anti-typographique "coeur", utilisé à longueur d'internet.<br/>
L'inclusion de caractères unicode permet l'accès aux symboles et à la citation de fragments utilisant d'autres alphabets que le nôtre. <br/>De plus, il permet également l'inclusion ds caractères de contrôle. Ainsi, \n et \u000A sont équivalents.<br/>
[http://fr.wikipedia.org/wiki/Table_des_caract%C3%A8res_unicode%2C_de_0_%C3%A0_4095 Table unicode (wikipedia)]
 
==Les nombres sous forme littérale==
 
==Les dates sous forme littérale==
==Les chaînes littérales dans les expressions associées aux évennements==