Does JavaScript have literal strings?

Active3 hr before
Viewed126 times

5 Answers


In JavaScript, string literals are known as template strings. And the syntax is pretty straightforward.,Template literals (Template strings), 2 Literal strings and template strings are not really the same thing. A literal string has no characters with special meaning at all. Template strings treat ${ as a special sequence. – DamienG Jan 11 '17 at 20:10 , 2 I think in fact the String.raw() method (which is part of Template literals) is the closest you could get to template strings. – Mariano Desanze May 16 '17 at 22:37

I don't know what you're getting at, but one way to get around the problem of escaping (etc) is use a trick that John Resig seems to like a lot. You include <script> blocks in a page, but give them a "type" like "text/plain" to make sure that the browser doesn't hand them over to Javascript. Then use the text of the script block for whatever you like.

<script id='a_string' type='text/plain'>
   Here is some stuff.
  There might be some \escape sequences in it.
load more v

Using normal strings, you would have to use the following syntax in order to get multi-line strings: , In order to embed expressions within normal strings, you would use the following syntax: ,Using template literals, you can do the same like this:,Any newline characters inserted in the source are part of the template literal.

// Untagged, these create strings:
`string text`

`string text line 1
 string text line 2`

`string text ${expression} string text`

// Tagged, this calls the function "example" with the template as the
// first argument and substitution values as subsequent arguments:
example`string text ${expression} string text`
load more v

At this point, a template literal is just like a better version of a normal JavaScript string. The big difference between a template literal and a normal string is substitutions.,A template tag carries the transformation on the template literal and returns the result string.,The literals parameter is an array that contains the literal strings.,The template literals allow you to define multiline strings more easily because you just need to add a new line in the string wherever you want:

In ES6, you create a template literal by wrapping your text in backticks (`) as follows:

.wp - block - code {
      border: 0;
      padding: 0;

   .wp - block - code > div {
      overflow: auto;

   .shcb - language {
      border: 0;
      clip: rect(1 px, 1 px, 1 px, 1 px); -
      webkit - clip - path: inset(50 % );
      clip - path: inset(50 % );
      height: 1 px;
      margin: -1 px;
      overflow: hidden;
      padding: 0;
      position: absolute;
      width: 1 px;
      word - wrap: normal;
      word - break: normal;

   .hljs {
      box - sizing: border - box;

   .hljs.shcb - code - table {
      display: table;
      width: 100 % ;

   .hljs.shcb - code - table > .shcb - loc {
      color: inherit;
      display: table - row;
      width: 100 % ;

   .hljs.shcb - code - table.shcb - loc > span {
      display: table - cell;

   .wp - block - code code.hljs: not(.shcb - wrap - lines) {
      white - space: pre;

   .wp - block - code code.hljs.shcb - wrap - lines {
      white - space: pre - wrap;

   .hljs.shcb - line - numbers {
      border - spacing: 0;
      counter - reset: line;

   .hljs.shcb - line - numbers > .shcb - loc {
      counter - increment: line;

   .hljs.shcb - line - numbers.shcb - loc > span {
      padding - left: 0.75 em;

   .hljs.shcb - line - numbers.shcb - loc::before {
      border - right: 1 px solid #ddd;
      content: counter(line);
      display: table - cell;
      padding: 0 0.75 em;
      text - align: right; -
      webkit - user - select: none; -
      moz - user - select: none; -
      ms - user - select: none;
      user - select: none;
      white - space: nowrap;
      width: 1 % ;
let simple = `This is a template literal`;
Code language: JavaScript(javascript)
load more v

JavaScript string must be enclosed in double or single quotes (" " or ' '). , String is a primitive data type in JavaScript. A string is textual content. It must be enclosed in single or double quotation marks. , JavaScript - String ,Use back slash (\) to include quotation marks inside string.

"Hello World"

'Hello World'
load more v

If you access the String constructor without using new, you’ll create a string literal rather than a String object:,The resulting string is a string literal, not a String object.,If you do need to access a String object method on a string literal, you can. What happens is the JavaScript engine creates a String object, wraps it around the string literal, performs the method call, and then discards the String object.,You want to insert a special character, such as a line feed, into a string.

'This is a string'
"This is a string"
"This isn't a number."
var badString = 'This is a bad string"; // oops, error
load more v

Other "literal-javascript" queries related to "Does JavaScript have literal strings?"