Initiation à la concaténation et à la conversion des types

Parent Previous Next

Initiation à la concaténation et à la conversion des types

Certains opérateurs ont des particularités cachées. Prenons l'opérateur + ; en plus de faire des additions, il permet de faire ce que l'on appelle des concaténations entre des chaînes de caractères.


La concaténation



Une concaténation consiste à ajouter une chaîne de caractères à la fin d'une autre, comme dans cet exemple :

Code : JavaScript

1

2

3

var hi = 'Bonjour', name = 'toi', result;

result = hi + name;

alert(result); // Affiche : « Bonjourtoi »



Cet exemple va afficher la phrase « Bonjourtoi ». Vous remarquerez qu'il n'y a pas d'espace entre les deux mots, en effet, la concaténation respecte ce que vous avez écrit dans les variables à la lettre près. Si vous voulez un espace, il vous faut en ajouter un à l'une des variables, comme ceci : var hi = 'Bonjour ';

Autre chose, vous souvenez-vous toujours de l'addition suivante ?

Code : JavaScript 

1

2

var number = 3;

number += 5;



Eh bien vous pouvez faire la même chose avec les chaînes de caractères :

Code : JavaScript 

1

2

3

var text = 'Bonjour ';

text += 'toi';

alert(text); // Affiche « Bonjour toi ».




Interagir avec l'utilisateur



La concaténation est le bon moment pour introduire votre toute première interaction avec l'utilisateur grâce à la fonction prompt(). Voici comment l'utiliser :

Code : JavaScript

1

2

var userName = prompt('Entrez votre prénom :');

alert(userName); // Affiche le prénom entré par l'utilisateur


Essayer !




La fonction prompt() s'utilise comme alert() mais a une petite particularité. Elle renvoie ce que l'utilisateur a écrit sous forme d'une chaîne de caractères, voilà pourquoi on écrit de cette manière :

Code : JavaScript 

1

var text = prompt('Tapez quelque chose :');



Ainsi, le texte tapé par l'utilisateur se retrouvera directement stocké dans la variable text.

Maintenant nous pouvons essayer de dire bonjour à nos visiteurs :

Code : JavaScript 

1

2

3

4

5

var start = 'Bonjour ', name, end = ' !', result;

     

name   = prompt('Quel est votre prénom ?');

result = start + name + end;

alert(result);



À noter que dans notre cas de figure actuel, nous concaténons des chaînes de caractères entre elles, mais sachez que vous pouvez très bien concaténer une chaîne de caractères et un nombre de la même manière :

Code : JavaScript 

1

2

3

4

var text = 'Voici un nombre : ', number = 42, result;

     

result = text + number;

alert(result); // Affiche : « Voici un nombre : 42 »




Convertir une chaîne de caractères en nombre



Essayons maintenant de faire une addition avec des nombres fournis par l'utilisateur :

Code : JavaScript 

1

2

3

4

5

6

7

var first, second, result;

     

first  = prompt('Entrez le premier chiffre :');

second = prompt('Entrez le second chiffre :');

result = first + second;

   

alert(result);



Si vous avez essayé ce code, vous avez sûrement remarqué qu'il y a un problème. Admettons que vous ayez tapé deux fois le chiffre 1, le résultat sera 11… Pourquoi ? Eh bien la raison a déjà été écrite quelques lignes plus haut :

Citation

Elle renvoie ce que l'utilisateur a écrit sous forme d'une chaîne de caractères […]



Voilà le problème, tout ce qui est écrit dans le champ de texte de prompt() est récupéré sous forme d'une chaîne de caractères, que ce soit un chiffre ou non. Du coup, si vous utilisez l'opérateur +, vous ne ferez pas une addition mais une concaténation !

C'est là que la conversion des types intervient. Le concept est simple : il suffit de convertir la chaîne de caractères en nombre. Pour cela, vous allez avoir besoin de la fonction parseInt() qui s'utilise de cette manière :

Code : JavaScript 

1

2

3

4

5

var text = '1337', number;

       

number = parseInt(text);

alert(typeof number); // Affiche : « number »

alert(number); // Affiche : « 1337 »



Maintenant que vous savez comment vous en servir, on va pouvoir l'adapter à notre code :

Code : JavaScript 

1

2

3

4

5

6

7

var first, second, result;

     

first = prompt('Entrez le premier chiffre :');

second = prompt('Entrez le second chiffre :');

result = parseInt(first) + parseInt(second);

   

alert(result);



Maintenant, si vous écrivez deux fois le chiffre 1, vous obtiendrez bien 2 comme résultat.


Convertir un nombre en chaîne de caractères



Pour clore ce chapitre, nous allons voir comment convertir un nombre en chaîne de caractères. Il est déjà possible de concaténer un nombre et une chaîne sans conversion, mais pas deux nombres, car ceux-ci s'ajouteraient à cause de l'emploi du +. D'où le besoin de convertir un nombre en chaîne. Voici comment faire :

Code : JavaScript 

1

2

3

var text, number1 = 4, number2 = 2;

text = number1 + '' + number2;

alert(text); // Affiche : « 42 »



Qu'avons-nous fait ? Nous avons juste ajouté une chaîne de caractères vide entre les deux nombres, ce qui aura eu pour effet de les convertir en chaînes de caractères.

Il existe une solution un peu moins archaïque que de rajouter une chaîne vide mais vous la découvrirez plus tard.


Créé avec HelpNDoc Personal Edition: Créer de la documentation iPhone facilement

Site à deux balles