Template literals¶
Vroeger: concatenatie met +¶
Wanneer je een text variabele, een string, wilt maken van meerdere variabelen kan je gebruik maken van concatenation. Hiervoor gebruik je het +
teken:
let aapString = 'aap';
let nootString = 'noot';
let miesString = 'mies';
let leesPlank = aapString + " " + nootString + " " + miesString;
De variabele leesPlank
bevat nu de string "aap noot mies"
.
Nu: Template strings¶
Het kan ook anders, met behulp van template strings:
Merk op dat de template string omgeven is door backticks, het ` karakter dat op je keyboard vaak te vinden is op de toets waar ook de ~ (tilde) staat.
Deze wijze is veel overzichtelijker en sneller dan string concatenation en zeker een betere optie bij het genereren van complexe strings.
Functional tags¶
Soms wil je een variabele op een meer intelligente manier omzetten een string. De volgende functie rapporteert een race waarbij je aangeeft op welke plaats de kandidaat is geëindigd:
function reportRace(str, place){
// de postfix voor elk getal om er een bijvoeglijk naamwoord van te maken
const postfix = ['th','st','nd','rd','th','th','th','th','th','th']
// plak de postfix aan het getal
const placeString = `${place}${postfix[place]}`;
// bepaal of er een medaille behaald is
const hasMedalString = `did${(place <= 3 ? '' : 'n\'t')}`;
return `${str[0]}${placeString} place and ${hasMedalString} earn a medal`;
}
Deze functie is nu te gebruiken als template literal:
geeft:
en:
geeft: