Guide JavaScript 1.5:Constantes littérales
Un article de MDC.
Sommaire |
[modifier] Constantes littérales
Les constantes littérales servent à représenter des valeurs en JavaScript. Elles constituent des valeurs fixes, et non des variables. On les appelle ainsi car elles sont spécifiées de manière littérale dans le script. Cette section décrit les types suivants de constantes littérales :
[modifier] Tableaux
Une constante littérale représentant un tableau est une liste d'expressions (zéro ou plus) entre crochets ([]). Chacune d'entre elles correspond à un élément du tableau. Lorsque qu'un tableau est créé à partir d'une telle constante, celui-ci se voit affecter les valeurs spécifiées en tant qu'éléments et le nombre d'expressions spécifiées constitue la longueur du tableau.
L'exemple suivant crée un tableau baptisé cafés contenant trois éléments et ayant une longueur de trois :
cafés = ["Arabica", "Expresso", "Cappuccino"];
Note : Les constantes littérales représentant des tableaux constituent un type particulier d'initialisateurs d'objets. Voir la page Utilisation des initialisateurs d'objets.
Si un tableau est utilisé directement comme une constante littérale dans un script de premier niveau, JavaScript l'interprète à chaque fois qu'il évalue l'expression contenant la constante littérale. De plus, une constante littérale à l'intérieur d'une fonction est créée à chaque appel de la fonction.
Les constantes littérales représentant des tableaux sont aussi des objets Array. Voir la page concernant l'objet Array pour plus de détails concernant les objets Array.
Virgules supplémentaires
Il n'est pas nécessaire de spécifier tous les éléments d'un tableau dans une constante littérale. Si vous écrivez deux virgules à la suite, l'objet Array allouera de l'espace pour les éléments non-spécifiés. L'exemple suivant crée un tableau poissons :
poissons = ["Lion", , "Clown"];
Cet objet Array possède deux éléments ayant une valeur et un élément vide (poissons[0] est "Lion", poissons[1] est undefined et poissons[2] est "Clown").
Si une virgule est placée à la fin de la liste des éléments, elle est ignorée. Dans l'exemple suivant, la longueur de maListe est trois. Il n'existe pas d'élément maListe[3]. Toutes les autres virgules de la liste indiquent la présence d'un nouvel élément.
maListe = ['maison', , 'école', ];
Dans l'exemple suivant, la longueur de maListe est quatre, alors que maListe[0] et maListe[2] ne sont pas définis.
maListe = [, 'maison', , 'école'];
Dans l'exemple suivant, la longueur de maListe est quatre, alors que maListe[1] et maListe[3] ne sont pas définis. Seule la virgule finale est ignorée : elle est facultative.
maListe = ['maison', , 'ecole', ,];
[modifier] Valeurs booléennes
Le type booléen possède deux constantes littérales : true et false.
Ne confondez pas les valeurs booléennes primitives true et false avec les valeurs true et false de l'objet Boolean. L'objet Boolean enchâsse le type booléen primitif. Voir la page concernant l'objet Boolean pour plus d'informations.
[modifier] Entiers
Les entiers peuvent être exprimés en base 10 (décimal), base 16 (hexadécimal) et base 8 (octal). Un entier décimal est constitué d'une série de chiffres sans 0 (zéro) au début. Un 0 (zéro) au début d'un entier indique que c'est un entier octal ; 0x (ou 0X) au début d'un entier indique que l'entier est hexadécimal. Les entiers hexadécimaux peuvent contenir des chiffres (de 0 à 9) et les lettres a à f ou A à F. Les entiers octaux ne peuvent contenir que les chiffres 0 à 7.
Les entiers octaux sont obsolètes et ont été supprimés du standard ECMA-262 édition 3. JavaScript 1.5 continue à les prendre en charge pour des raisons de compatibilité.
Quelques exemples d'entiers :
-
0,117et-345(entiers décimaux, base 10) -
015,0001et-077(entiers octaux, base 8) -
0x1123,0x00111et-0xF1A7(entiers hexadécimaux, base 16)
[modifier] Nombres à virgule flottante
Un nombre à virgule flottante peut posséder les parties suivantes :
- Un entier décimal
- Une virgule décimale (c'est en fait un «
.» en anglais) - Une fraction (un autre nombre décimal)
- Un exposant
La partie exposant est constituée d'un e minuscule ou E majuscule suivi d'un entier, celui-ci pouvant être signé (c'est-à-dire précédé d'un + ou d'un -). Un nombre à virgule flottante doit posséder au moins un chiffre, avec une virgule ou e (ou E).
Quelques exemples de nombres à virgule flottante : 3.1415, -3.1E12, .1e12 et 2E-12.
[modifier] Objets
Un objet littéral est une liste de paires (zéro ou plus) entre accolades ({}), chaque paire associant un nom de propriété à sa valeur. Il est déconseillé d'utiliser un objet littéral au début d'une instruction. Cela provoquera une erreur ou un comportement inattendu, car l'accolade { sera interprétée comme le début d'un bloc.
Le code suivant donne un exemple d'objet littéral. Le premier élément de l'objet littéral voiture définit une propriété, maVoiture. Le deuxième élément, qui définit la propriété obtVoiture, invoque la fonction TypesDeVoiture("Honda"). Le troisième élément, qui définit la propriété special, utilise une variable existante (Vente).
var Vente = "Toyota";
function TypesDeVoiture(nom) {
if(nom == "Honda")
return nom;
else
return "Désolés, nous ne vendons pas de modèles " + nom + ".";
}
voiture = {maVoiture: "Saturn", obtVoiture: TypesDeVoiture("Honda"), special: Vente}
document.write(voiture.maVoiture); // Saturn
document.write(voiture.obtVoiture); // Honda
document.write(voiture.special); // Toyota
De plus, vous pouvez utiliser une constante littérale numérique ou une chaîne comme nom de propriété, ainsi qu'enchâsser un objet à l'intérieur d'un autre. L'exemple suivant fait usage de ces fonctionnalités :
voiture = {plusieursVoitures: {a: "Saab", b: "Jeep"}, 7: "Mazda"}
document.write(voiture.plusieursVoitures.b); // Jeep
document.write(voiture[7]); // Mazda
Remarquez également que :
toto = {a: "alpha", 2: "deux"}
document.write (toto.a) // alpha
document.write (toto[2]) // deux
//document.write (toto.2) // Erreur : une parenthèse ) manque après la liste d'arguments
//document.write (toto[a]) // Erreur : a n'est pas défini
document.write (toto["a"]) // alpha
document.write (toto["2"]) // deux
[modifier] Chaînes
Une chaîne est constituée de zéro caractère ou plus inclus entre guillemets double (") ou simple ('). Une chaîne doit être délimitée par des guillemets du même type, c'est-à-dire deux guillemets doubles ou deux guillemets simples. Voici des exemples de chaînes :
-
"beurk" -
'beurk' -
"1234" -
"une ligne \n une autre ligne" -
"Le chat de Jean"
Vous pouvez appeler les méthodes de l'objet String à partir d'une chaîne littérale - JavaScript convertit automatiquement la chaîne littérale en un objet String temporaire, appelle la méthode puis se débarasse de l'objet String temporaire. Vous pouvez aussi utiliser la propriété String.length avec une chaîne littérale :
"Le chat de Jean".length
Il est conseillé d'utiliser les chaînes littérales à moins que vous ayez tout particulièrement besoin d'utiliser un objet String. Voir la page concernant l'objet String pour plus de détails sur les objets String.
[modifier] Utiliser des caractères spéciaux à l'intérieur des chaînes
En plus des caractères ordinaires, vous pouvez aussi inclure des caractères spéciaux à l'intérieur de vos chaînes, comme le montre l'exemple suivant.
"une ligne \n une autre ligne"
Le tableau suivant dresse la liste des caractères spéciaux que vous pouvez utiliser dans les chaînes JavaScript.
| Caractère | Signification |
|---|---|
\b |
Retour arrière |
\f |
Saut de page |
\n |
Nouvelle ligne |
\r |
Retour chariot |
\t |
Tabulation |
\v |
Tabulation verticale |
\' |
Apostrophe ou guillemet simple |
\" |
Guillemet double |
\\ |
Caractère antislash (\) |
\XXX |
Le caractère du codage Latin-1 correspondant aux trois chiffres octaux XXX (entre 0 et 377). À titre d'exemple, \251 constitue la séquence octale correspondant au symbole « copyright ». |
\xXX |
Le caractère du codage Latin-1 correspondant aux deux chiffres hexadécimaux XX (entre 00 et FF). À titre d'exemple, \xA9 constitue la séquence hexadécimale correspondant au symbole « copyright ». |
\uXXXX |
Le caractère Unicode correspondant aux quatre chiffres hexadécimaux XXXX. À titre d'exemple, \u00A9 constitue la séquence Unicode correspondant au symbole « copyright ». Voir la page Séquences d'échappement Unicode. |
Tableau 2.1 : Caractères spéciaux de JavaScript
[modifier] Échappement des caractères
Pour les caractères qui ne sont pas présents dans le tableau 2.1, tout antislash précédant un tel caractère sera ignoré mais cet emploi de l'antislash est obsolète et il est conseillé de l'éviter.
Vous pouvez insérer un guillemet à l'intérieur d'une chaîne en le précédant d'un antislash. Ce procédé est connu sous le nom d'échappement du guillemet. À titre d'exemple :
var citation = "J'ai lu \"Les misérables\" de Victor Hugo." document.write(citation)
Pour inclure un caractère antislash littéral à l'intérieur d'une chaîne, vous devez échapper l'antislash. À titre d'exemple, pour affecter le chemin d'accès c:\temp à une chaîne, utilisez le code suivant :
var accueil = "c:\\temp"