Javascript utilise trois types de chaînes de caractères:
guillemets "
apostrophes '
backticks ` (ALT-GR 7).

String entre apostrophes

Si le string contient des guillemets -c'est le cas pour le HTML5 qui recommande les guillements en valeur des attributs pour être valide- (exemple <a href=""></a>) on voudra mettre le string Javascript entre apostrophes.

Dans un string entre apostrophes on peut insérer des guillemets:
<script>
let a = 'le "string"';
</script>
Caractères spéciaux
Les chaînes entre apostrophes acceptent les caractère spéciaux \r \n \t \' \"
Ainsi pour insérer une apostrophe:
<script>
let a = 'le \'string\'';
</script>
Ainsi
<script>
console.log('545\n666');
</script>
Affichera deux lignes dans la console.

Si le string est sur plusieurs lignes
→ Par concaténation
<script>
let a = 'le string'+
        ' présenté sur 3 lignes\n'+
        'mais qui n\'en fait que deux';
</script>
→ Par héritage du préprocesseur C (escaping new lines). C'est le plus rapide
<script>
let a = 'le string \
présenté sur plusieurs lignes\
mais qui n\'en fait qu\'une';
</script>

String entre guillemets

Même principe que pour les chaînes entre apostrophes.

String entre backticks

Les string entre backticks sont appelés chaînes Javascript ou Template literal.

Si un string contient simultanément des apostrophes et des guillemets,
alors on voudra le mettre entre backticks!
<script>
let s = `<a href="" onclick="return fonc('test')">`;
</script>
Aussi on voudra les utiliser si la chaîne est constituée de plusieurs lignes. Exemple:
<script>
let a = `le string 
présenté sur trois lignes
et qui en fait 3`;
</script>
Mais les templates literals vont plus loin: ils acceptent des variables et même des expressions:
<script>
let a = 2.5;
let b = 3;
console.log("a vaut ${a}");   // a vaut ${a}
console.log('a vaut ${a}');   // a vaut ${a}
console.log(`a vaut ${a}`);   // a vaut 2.5
console.log(`a vaut ${a*5}`); // a vaut 12.5
console.log(`a vaut ${a*b}`); // a vaut 7.5
console.log(`a vaut ${Math.floor(a*5)}`); // a vaut 12
</script>




Autres méthodes bizarres pour les strings multilignes

→ Méthode exotique (source)
<script>
var myString = function(){/*
    This is some
    awesome multi-lined
    string using a comment 
    inside a function 
    returned as a string.
    Enjoy the jimmy rigged code.
*/}.toString().slice(14,-3)

alert(myString)
</script>
→ Méthode exotique simple:le string est stocké dans un div caché du DOM, JS récupère le contenu du div
<div id="UniqueID" style="display:none;">
     Strings
     On
     Multiple
     Lines
     Here
</div>

<script>
console.log(document.getElementById('UniqueID').innerHTML);
</script>