Los literales de plantilla como ‘some ${string}’ o “some ${string}” no funcionan

3 minutos de lectura

Avatar de usuario de Ron I
ron yo

Quería intentar usar literales de plantilla y no funciona: muestra los nombres de las variables literales, en lugar de los valores. Estoy usando Chrome v50.0.2 (y jQuery).

Ejemplo

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

Producción

${this.categoryName}
categoryElements: ${this.categoryElements}

  • Use acentos graves ` y no comillas simples ' o comillas dobles ".

    – Soubhik Mondal

    16 de mayo de 2016 a las 2:04


Avatar de usuario de Tim Grant
beca tim

JavaScript literales de plantilla requieren acentos graves, no comillas rectas.

Debe usar acentos graves (también conocidos como “acentos graves”, que encontrará junto a la tecla 1 si estás usando un teclado QWERTY) – en lugar de comillas simples – para crear un literal de plantilla.

Los acentos graves son comunes en muchos lenguajes de programación, pero pueden ser nuevos para los desarrolladores de JavaScript.

Ejemplo:

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

Producción:

VM626:1 categoryName: name 
categoryElements: element

Ver:

Uso del carácter de acento grave (`) en JavaScript

  • Wow, no creerías cuánto tiempo me tomó encontrar esto. Increíblemente, no es evidente que este fuera el problema, especialmente en el sentido de que la marca de retroceso se usa para CREAR segmentos de código en Markdown y similares. Es realmente fácil pensar que la marca de retroceso era un marcador de código y luego traducirlo mentalmente a una sola marca. Gracias, gracias amablemente.

    – Andrew T. Finnell

    17 de noviembre de 2016 a las 17:14

  • “Si está usando un teclado QWERTY” … con un diseño de EE. UU. Algunos diseños QWERTY (por ejemplo, QWERTY JIS) no colocan el acento grave allí.

    – Amadan

    20 mayo 2022 a las 13:15

avatar de usuario de ilyas
ilyas

Hay tres comillas, pero solo funciona una entrada que podemos usar como LITERALES DE PLANTILLA:

  1. " " (mi tecla del teclado) no funciona:
console.log("Server is running on port: ${PORT}")
  1. ' ' (Turno + 2 tecla del teclado) no funciona:
console.log('Server is running on port: ${PORT}')
  1. ` ` (alternativa + número96 tecla en el teclado) está funcionando:
console.log(`Server is running on port: ${PORT}`)

Captura de pantalla de console.log (el servidor se ejecuta en el puerto: ${PORT})

  • ¡Tenga cuidado, hay muchos diseños de teclado diferentes! El diseño QWERTY británico tiene " como shift + 2 con ambos ' y ` tener sus propias claves donde no se necesita modificador.

    – phuzi

    20 de mayo de 2022 a las 13:14


avatar de usuario de jama.bushra
jama.bushra

Solo funciona si usas acentos graves, en mi Mac Pro eso es ` que está encima de la tecla de tabulación.

Si usa comillas simples o dobles, ¡no funcionará!

avatar de usuario de sunilsingh
sunilsingh

// 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

No pude obtener el resultado deseado. estaba usando comillas simples ' que era incorrecto y estaba imprimiendo el mismo mensaje.

Los acentos graves están debajo ~ en tu teclado. Utilizar shift+~ recibir tildes

Espero eso ayude.

Plantilla Literal No use comillas dobles/simples en su lugar Use acento grave

const test="Test"
console.log(`test: ${test}`)

Ir a Mdn doc para más https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals

Avatar de usuario de Aljohn Yamaro
Aljohn Yamaro

1.) agregue .jshitrc mismo nivel de carpeta con su app.js y otros archivos

2.) pon esto dentro del archivo recién creado { “esversion”: 6 }

3.) nunca use comillas simples ‘ use backticks `

  • ¿Cómo se relaciona esta respuesta con la pregunta?

    – Edric

    12 de marzo de 2021 a las 6:14

¿Ha sido útil esta solución?