diff options
Diffstat (limited to 'files/fr/web/javascript/reference/erreurs/unterminated_string_literal/index.html')
-rw-r--r-- | files/fr/web/javascript/reference/erreurs/unterminated_string_literal/index.html | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/files/fr/web/javascript/reference/erreurs/unterminated_string_literal/index.html b/files/fr/web/javascript/reference/erreurs/unterminated_string_literal/index.html new file mode 100644 index 0000000000..db0260c915 --- /dev/null +++ b/files/fr/web/javascript/reference/erreurs/unterminated_string_literal/index.html @@ -0,0 +1,77 @@ +--- +title: 'SyntaxError: unterminated string literal' +slug: Web/JavaScript/Reference/Erreurs/Unterminated_string_literal +tags: + - Erreurs + - JavaScript + - Reference + - SyntaxError +translation_of: Web/JavaScript/Reference/Errors/Unterminated_string_literal +--- +<div>{{jsSidebar("Errors")}}</div> + +<h2 id="Message">Message</h2> + +<pre class="syntaxbox">SyntaxError: Unterminated string constant (Edge) +SyntaxError: unterminated string literal (Firefox) +</pre> + +<h2 id="Type_d'erreur">Type d'erreur</h2> + +<p>{{jsxref("SyntaxError")}}</p> + +<h2 id="Quel_est_le_problème">Quel est le problème ?</h2> + +<p>Une chaîne de caractères ({{jsxref("String")}}) n'est pas bien délimitée quelque part. Les littéraux de chaînes de caractères doivent être délimités par des simples quotes (') ou par des doubles quotes ("). <a href="/fr/docs/Web/JavaScript/Reference/Objets_globaux/String#Échappement_des_caractères">Les séquences d'échappement</a> permet de représenter dans ces chaînes de caractères. Pour réparer cette erreur :</p> + +<ul> + <li>Vérifiez que la chaîne est bien délimitée au début et à la fin par des doubles quotes ou par des simples quotes,</li> + <li>Vérifiez que les caractères spéciaux de la chaîne ont bien été échappés,</li> + <li>Vérifiez que le littéral est bien découpé pour gérer plusieurs lignes (si c'est le cas).</li> +</ul> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Gérer_plusieurs_lignes">Gérer plusieurs lignes</h3> + +<p>En JavaScript, on ne peut pas écrire une chaîne simple sur plusieurs lignes comme ceci :</p> + +<pre class="brush: js example-bad">var longString = "This is a very long string which needs + to wrap across multiple lines because + otherwise my code is unreadable."; +// SyntaxError: unterminated string literal</pre> + +<p>Pour écrire une chaîne sur plusieurs lignes, on pourra utiliser :</p> + +<ul> + <li><a href="/fr/docs/Web/JavaScript/Reference/Opérateurs/Opérateurs_arithmétiques#Addition_()">L'opérateur +</a>,</li> + <li>Une barre oblique inversée ("\")</li> + <li><a href="/fr/docs/Web/JavaScript/Reference/Littéraux_gabarits">Des littéraux de gabarits</a></li> +</ul> + +<p>Voici la première variante avec l'opérateur de concaténation :</p> + +<pre class="brush: js example-good">var longString = "This is a very long string which needs " + + "to wrap across multiple lines because " + + "otherwise my code is unreadable."; +</pre> + +<p>Sinon, on peut utiliser une barre oblique inversée à la fin de chaque ligne pour indiquer qu'elle continue sur la ligne suivante. Attention, il faudra qu'il n'y ait aucun espace ou autre caractère après la barre oblique (il peut bien entendu y avoir un saut de ligne) :</p> + +<pre class="brush: js example-good">var longString = "This is a very long string which needs \ +to wrap across multiple lines because \ +otherwise my code is unreadable."; +</pre> + +<p>On pourra également utiliser <a href="/fr/docs/Web/JavaScript/Reference/Littéraux_gabarits">les littéraux de gabarits</a> qui sont pris en charge par les environnement ECMAScript 2015 :</p> + +<pre class="brush: js example-good">var longString = `This is a very long string which needs + to wrap across multiple lines because + otherwise my code is unreadable.`;</pre> + +<h2 id="Voir_aussi">Voir aussi</h2> + +<ul> + <li>{{jsxref("String")}}</li> + <li><a href="/fr/docs/Web/JavaScript/Reference/Littéraux_gabarits">Les littéraux de gabarits</a></li> +</ul> |