JS: Template String

By Xah Lee. Date: . Last updated: .

New in ES2015.

String can be enclosed by the character ` (U+60: GRAVE ACCENT) , like this:

`How are you?`

console.log(`my cat` === "my cat"); // true

Literal Line Break Allowed

Literal newline character is allowed:

// template string allow literal newline
let x = `aa

// prints in 2 lines

Embeded Expression

Any form ${expr} in tempate string will have the expr evaluated and result inserted into the string.

// template string example
    `two plus three is ${2+3}`
); // two plus three is 5

The ${…} is called place-holder, or substitution string.

Here's a example with embedded variable:

// variable interpolation inside template string

let x = 76;

    `You have ${x} points.`
); // You have 76 points.

When the expression is a object, its toString method is used to convert it to string. (or, with inheritance up to Object.toString()) [see JS: Prototype and Inheritance]

Escape Characters

If you want to include a GRAVE ACCENT in a template string, you can escape it by backslash, like this \`.

// escape grave mark in template string
); // prints a`b

You can also escape ${…} by \${…} or $\{…}.

// escape the expression part in template string

let x = 2;

console.log(`${x}`); // prints 2

console.log(`\${x}`); // prints ${x}

console.log(`$\{x}`); // prints ${x}

Nest Template String

Template string can be nested.

// nested template string

let x = "B";

    `wow ${`A${x}C`}`
); // wow ABC

Tagged Template String

[see JS: Tagged Template String]


ECMAScript 2015 §ECMAScript Language: Lexical Grammar#sec-template-literal-lexical-components

ECMAScript 2015 §ECMAScript Language: Expressions#sec-template-literals

String Topic

  1. JS: String Overview
  2. JS: Template String
  3. JS: String Escape Sequence
  4. JS: Unicode Escape Sequence
  5. JS: String Object
  6. JS: String.prototype
  7. JS: String to Number
  8. JS: Encode URL, Escape String
  9. JS: Format Number
  10. JS: JSON
  11. JS: Source Code Encoding
  12. JS: Allowed Characters in Identifier
Liket it? Put $5 at patreon.

Or, Buy JavaScript in Depth

If you have a question, put $5 at patreon and message me.

Web Dev Tutorials

  1. HTML
  2. Visual CSS
  3. JS Basics
  4. JS in Depth
  5. JS Reference
  6. DOM
  7. SVG
  8. JS Misc