76

I wanted to try using template literals and it’s not working: it’s displaying the literal variable names, instead of the values. I am using Chrome v50.0.2 (and jQuery).

Example

console.log('categoryName: ${this.categoryName}\ncategoryElements: ${this.categoryElements} ');

Output

${this.categoryName}
categoryElements: ${this.categoryElements}
Sebastian Simon
  • 16,564
  • 7
  • 51
  • 69
Ron I
  • 3,648
  • 8
  • 30
  • 59

5 Answers5

186

JavaScript template literals require backticks, not straight quotation marks.

You need to use backticks (otherwise known as "grave accents" - which you'll find next to the 1 key if you're using a QWERTY keyboard) - rather than single quotes - to create a template literal.

Backticks are common in many programming languages but may be new to JavaScript developers.

Example:
categoryName="name";
categoryElements="element";
console.log(`categoryName: ${this.categoryName}\ncategoryElements: ${categoryElements} `) 
Output:
VM626:1 categoryName: name 
categoryElements: element
See:

Usage of the backtick character (`) in JavaScript

Tim Grant
  • 3,093
  • 3
  • 21
  • 28
  • 8
    Wow, you wouldn't believe how long it took me to find this. It is incredibly not evident this was the problem, especially sense the back tick is used to CREATE code segments in Markdown and the like. It's really easy to just think the back tick was a code marker and then mentally translate it to a single tick. Thank you, thank you kindly. – Andrew T Finnell Nov 17 '16 at 17:14
  • "If you're using a QWERTY keyboard" ...with a US layout. Some QWERTY layouts (e.g. QWERTY JIS) do not place the backtick there. – Amadan May 20 '22 at 13:15
5

There are three quotation marks, but just one entrance is working which we can use as TEMPLATE LITERALS:

  1. " " (é key on keyboard) is not working:
console.log("Server is running on port: ${PORT}")
  1. ' ' (Shift + 2 key on keyboard) is not working:
console.log('Server is running on port: ${PORT}')
  1. ` ` (Alt + Num96 key on keyboard) is working:
console.log(`Server is running on port: ${PORT}`)

Screenshot of console.log(Server is running on port: ${PORT})

Lloyd Dominic
  • 762
  • 7
  • 23
ilyas
  • 51
  • 1
  • 3
  • Be careful, there are many different keyboard layouts! The British QWERTY layout has `"` as `shift + 2` with both `'` and `\`` having their own keys where no modifier is needed. – phuzi May 20 '22 at 13:14
3

it only works if you use backpacks, on my Mac Pro that is ` which is above the tab key.

If you use single or double quotes it won't work!

-2

// Example
var person = {
  name: "Meera",
  hello: function(things) {
    console.log(`${this.name} Says hello ${things}`);
  }
}

// Calling function hello
person.hello("World");

//Meera Says hello World
adiga
  • 31,610
  • 8
  • 53
  • 74
sunilsingh
  • 483
  • 5
  • 9
-4

1.) add .jshitrc same folder level with your app.js and other files

2.) put this inside the newly created file { "esversion": 6 }

3.) never use single quote ' use backticks `

Aljohn Yamaro
  • 2,321
  • 21
  • 21