linkedin behance copy arrow-up

Les chaînes de caractères en JavaScript

Concentrons-nous maintenant sur les chaînes de caractères - c'est le nom donné à un segment de texte en programmation. Dans cet article, nous aborderons les aspects les plus communs des chaînes de caractères que vous devez vraiment connaître quand vous apprenez JavaScript, comme créer une chaîne de caractères, échapper des guillemets dans une chaîne ou encore concaténer des chaînes.

Le pouvoir des mots

Les mots ont beaucoup d'importance pour les humains — ils occupent une large part dans nos façons de communiquer. Comme le Web est un medium essentiellement fondé sur du texte conçu pour permettre aux hommes de communiquer et partager de l'information, il est utile de contrôler les mots qui y sont publiés. HTML donne structure et sens au texte, CSS en gère le style et JavaScript comporte une série de fonctionnalités pour manipuler les chaînes de caractères, créer des messages d'accueil personnalisés, afficher la bonne étiquette quand nécessaire, trier des termes dans l'ordre voulu, et bien d'autres choses encore.

À peu près tous les programmes que nous vous avons montrés jusqu'ici ont impliqué des manipulations de chaînes de caractères.

Chaînes de caractères — les bases

À première vue, les chaînes se traitent de la même manière que les nombres ; mais si vous approfondissez la chose, vous commencerez à percevoir des différences notables. Entrons sur la console quelques lignes simples pour nous familiariser avec la chose. À propos de la console, nous en avons placé une ci‑dessous (vous pouvez l'ouvrir dans un onglet ou une fenêtre séparée, ou bien utiliser celle de l'explorateur; comme vous préférez).

Créer une chaîne de texte

  1. Pour débuter, entrez les lignes suivantes :

    JS

    
    const string = "The revolution will not be televised.";
    console.log(string);
    
    Comme nous l'avons fait avec les nombres, nous déclarons une variable, l'initialisons avec une valeur de chaîne, puis renvoyons la valeur. La seule différence ici est que lorsque nous écrivons une chaîne, nous la mettons entre guillemets.
  2. Si vous ne le faites pas, ou si vous oubliez un des guillemets, vous déclenchez une erreur. Essayez d'entrer une de ces lignes :
    
    const badString1 = This is a test;
    const badString2 = 'This is a test;
    const badString3 = This is a test';
    
    Ces lignes de code ne fonctionnent pas parce que toute chaîne de texte qui n'est pas écrite entre guillemets est considérée comme un nom de variable, un nom de propriété, un mot réservé ou quelque chose de semblable. Quand l'interpréteur ne parvient pas à trouver la déclaration de ladite variable, une erreur est déclenchée (par ex. « missing ; before statement »). Si l'interpréteur voit le début d'une chaîne mais ne trouve pas sa fin, comme dans la ligne 2, il se plaint en émettant une erreur (avec « unterminated string literal »). Si votre programme produit de telles erreurs, revoyez‑le et vérifiez qu'aucun guillemet ne manque.
  3. L'assertion suivante fonctionne si la variable string a été préalablement définie — essayez maintenant :
    
    const badString = string;
    console.log(badString);
    
    badString est maintenant défini avec la même valeur que string.

Guillemets simples vs guillemets doubles

  1. En JavaScript, vous pouvez envelopper vos chaînes entre des guillemets simples ou doubles. Les deux expressions suivantes sont correctes :
    
    const single = 'Single quotes';
    const double = "Double quotes";
    const backtick = `Backtick`;
    
    console.log(single);
    console.log(double);
    console.log(backtick);
    
  2. Il y a une toute petite différence entre les deux, et celle que vous retenez relève de la préférence personnelle. Prenez-en une, et tenez‑vous y toutefois : du code avec des mises entre guillemets diversifiées peut amener des confusions, en particulier si vous utilisez les deux sortes dans la même chaîne ! Ce qui suit renvoie une erreur :
    
    const badQuotes = 'This is not allowed!";
    
  3. L'interpréteur pensera que la chaîne n'a pas été fermée, car le type de guillemet autre ne servant pas à délimiter les chaînes peut y être employé. Par exemple, ces deux assertions sont valables :
    
    let sglDbl = 'Mangeriez‑vous un "souper de poisson"?';
    let dblSgl = "J'ai le blues.";
    sglDbl;
    dblSgl;
    
  4. Bien entendu, vous ne pouvez pas inclure dans la chaîne le même type de guillemet que celui qui est utilisé pour la délimiter. Ce qui suit conduit à une erreur, car l'explorateur ne peut pas déterminer là où se termine la chaîne :
    
    let bigmouth = 'Je n'ai pas eu droit à prendre place...';
    
    Voilà qui nous amène naturellement au prochain sujet.

Échappement de caractères dans une chaîne

Pour corriger l'erreur dans notre ligne de code précédente, il nous suffit d'échapper au problème que pose le guillemet. « Échapper des caractères » signifie que nous les marquons de manière à ce qu'ils soient reconnus comme partie intégrante du texte, et non pas comme symbole de code. Dans JavaScript, nous le faisons en mettant une barre oblique inverse juste avant le caractère. Essayons :


const name = "Chris";
const greeting = `Hello, ${name}`;
console.log(greeting); // "Hello, Chris"

Vous pouvez utiliser la même technique pour réunir deux variables


const one = "Hello, ";
const two = "how are you?";
const joined = `${one}${two}`;
console.log(joined); // "Hello, how are you?"

Joindre des chaînes comme ceci s'appelle la concaténation.

Concaténation en contexte

Jetons un coup d'œil à la concaténation utilisée en action :


<button>;Press me</button>
<div id="greeting">;</div>

const button = document.querySelector("button");

function greet() {
  const name = prompt("What is your name?");
  const greeting = document.querySelector("#greeting");
  greeting.textContent = `Hello ${name}, nice to see you!`;
}

button.addEventListener("click", greet);


Ici nous utilisons en ligne 4 la fonction Window.prompt(), qui demande à l'utilisateur de répondre à une question par l'intermédiaire d'une boîte de dialogue, puis qui stocke le texte entré dans une variable donnée — dans ce cas name. En ligne 5, nous nous servons de la fonction Window.alert() pour afficher un dialogue contenant une chaîne assemblée à partir de deux chaînes littérales et de la variable name, par concaténation.

Nombres vs chaînes

  1. Que se passe-t-il quand nous essayons d'additionner (ou concaténer) une chaîne et un nombre ? Essayons dans la console :
    
    "Front" + 242;
    
    Vous vous attendriez à déclencher une erreur, mais cela fonctionne parfaitement. Essayer de représenter une chaîne comme un nombre n'a vraiment aucun sens, mais représenter un nombre par une chaîne en a, donc le navigateur convertit adroitement le nombre en chaîne et concatène les deux chaînes.
  2. Vous pouvez même faire cela avec deux nombres — vous forcez un nombre à devenir une chaîne en le mettant entre guillemets. Essayez ce qui suit (nous nous servons de l'opérateur typeof pour vérifier si la variable est un nombre ou une chaîne):
    
    let myDate = "19" + "67";
    typeof myDate;
    
  3. Si vous avez une variable numérique que vous souhaitez convertir en chaîne sans autre modification, ou une variable numérique que vous voulez convertir en chaîne sans autre modification, vous pouvez utiliser les constructions suivantes :
    • L'objet Number convertit tout ce qui lui est passé en nombre, si c'est possible. Essayez :
      
      let myString = "123";
      let myNum = Number(myString);
      typeof myNum;
      
    • D'autre part, tout nombre possède une méthode nommée toString() qui le convertit en chaîne équivalente. Essayez :
      
      let myNum = 123;
      let myString = myNum.toString();
      typeof myString;
      

Ces constructions peuvent être vraiment utiles en certaines circonstances. Par exemple, si un utilisateur entre un nombre dans un champ texte d'un formulaire, c'est une chaîne. Mais si vous voulez ajouter ce nombre à autre chose, il est nécessaire qu'il soit du type number, donc vous pouvez le faire passer par la méthode Number() pour gérer cela. C'est exactement ce que nous avons fait dans le jeu Devinez un nombre, à la ligne 63.

Conclusion

Voilà donc les bases de la manipulation des chaînes de caractères en JavaScript. Dans le prochain article, nous allons bâtir sur ces éléments en examinant certaines méthodes intégrées disponibles pour les chaînes de caractères dans JavaScript et en les utilisant pour mettre les chaînes de caractères dans la forme voulue.

© 2010-2022 Quazerty.