Template literals in JavaScript

What is template literals?

Template literals or template strings are string literals that allows multi-line strings, embedded expressions inside string, string interpolation features with them. Template literals are enclosed by the back-tick (` `).

Multi-line strings using template literals:

Before ES2015
console.log('This is the first line\n' +
'This is the second line');
In ES2015
console.log(`This is the first line
This is the second line`);

String interpolation with expression:

// Normal string concatenation 
console.log('Six plus four equals: ' + (6 + 4) + '.');
// Using template literals
console.log(`Six plus four equals: ${6 + 4}.`);

String interpolation with variable:

// Normal string concatenation 
let age = 24
console.log("I'm " + age + " years old!");
// Using template literals
let age = 24
console.log(`I'm ${age} years old!`);

Tagged template literals:

Tagged templates is the more advanced form of template literals introduced in ES6. This tagged template literals parse template literals with a function. The first parameter of a tag function holds an array of string values. The remaining parameters are extracted from the expression sequentially.

Example of tagged templates

var name = 'Joe Smith';

function getName(strings, name) {
  var str0 = strings[0]; // "My name is: "
  var str1 = strings[1]; // "."

  return `${str0}${name}${str1}`;
}

var result = getName`My name is: ${ name }.`;
console.log(result);
// My name is: Joe Smith.