String.raw()

La méthode statique String.raw() est une fonction d'étiquetage (tag function) pour les gabarits de chaînes de caractères (elle est semblable au préfixe r en Python ou au préfixe @ en C#). Cette fonction permet d'obtenir la chaîne brute pour un gabarit (les caractères spéciaux ne sont pas pris en compte mais retranscrits tels quels).

Syntaxe

String.raw(callSite, ...substitutions)

String.raw`gabaritChaîne`

Paramètres

callSite
Un site d'appel bien formé pour un gabarit (call site object) tel que {raw: "string"}.
...substitutions
Paramètre contenant les valeurs à substituer.
gabaritChaîne
Un gabarit de chaîne de caractères, éventuellement avec des substitutions (${...}).

Valeur de retour

La chaîne de caractères brute correspondant à un gabarit donné.

Exceptions

TypeError
Une exception TypeError est renvoyée si le premier argument n'est pas un objet bien formé.

Description

Dans la plupart des cas, String.raw() est utilisé avec des gabarits de chaînes de caractères. La première syntaxe, présentée ci-avant est rarement utilisée. En effet, le moteur JavaScript appellera cette forme avec les arguments appropriés, comme pour les fonctions d'étiquetage (tag).

La méthode String.raw() est la seule méthode d'étiquetage native pour les chaînes de caractères. Elle fonctionne comme la fonction par défaut pour les gabarits et permet d'effectuer des concaténations. Il est également possible d'implémenter cette méthode avec du code JavaScript.

Exemples

Utiliser String.raw()

String.raw`Hi\n${2+3}!`; 
// "Hi\\n5!", le caractère après "Hi" n'est pas le caractère de nouvelle ligne
// "\" et "n" sont bien deux caractères distincts ici. 

String.raw`Hi\u000A!`;             
// "Hi\\u000A!", de même ici. Les caractères
//  \, u, 0, 0, 0, A et 6 sont distincts.
// Tous les caractères d'échappement seront inefficaces. Des
// backslashes peuvent donc être présents dans la chaîne produite.
// Cela peut être vérifié avec la propriété .length de la chaîne.

let nom = "Bob";
String.raw`Hi\n${nom}!`;             
// "Hi\\nBob!", les remplacements sont effectués.

// Généralement, on n'appelle pas String.raw comme une fonction, mais c'est possible :
String.raw({raw: "test"}, 0, 1, 2);
// "t0e1s2t"

Spécifications

Spécification État Commentaires
ECMAScript 2015 (6th Edition, ECMA-262)
La définition de 'String.raw' dans cette spécification.
Standard Définition initiale.
ECMAScript 2017 Draft (ECMA-262)
La définition de 'String.raw' dans cette spécification.
Projet  

Compatibilité des navigateurs

Fonctionnalité Chrome Firefox (Gecko) Internet Explorer Opera Safari
Support simple 41 [1] 34 (34) Pas de support Pas de support Pas de support
Fonctionnalité Android Chrome pour Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Support simple Pas de support 41 [1] 34.0 (34) Pas de support Pas de support Pas de support

[1] Pour plus d'informations, voir le tableau de bord de l'implémentation Chrome.

Voir aussi

Étiquettes et contributeurs liés au document

 Contributeurs à cette page : SphinxKnight
 Dernière mise à jour par : SphinxKnight,