javascript node.js ecmascript-6 template-strings template-literals

javascript - ¿Qué significa este código `... ${...}...` en los documentos del nodo?



node.js ecmascript-6 (1)

Esta pregunta ya tiene una respuesta aquí:

Estoy tratando de aprender la biblioteca Express y Node.js paso a paso. Lo primero que estoy viendo son los detalles de la función Node reqiure(moduleName) .

Eché un vistazo a la documentación para esto y encontré un código extraño en la documentación de ejemplo:

const circle = require(''./circle.js''); console.log( `The area of a circle of radius 4 is ${circle.area(4)}`);

Más específicamente el ${circle.area(4)} .

Por lo que entiendo, $ en JavaScript es como cualquier otra variable. Cuando lo estamos usando en el desarrollo web del lado del cliente, se usa como delegado para la función de documento (creo). ¿A qué se asigna cuando se usa el nodo?

Además de eso, ¿qué significa esta sintaxis? ${circle.area(4)}

Si $ es solo una referencia a alguna función someFunction() , ¿no sería equivalente a esta someFunction(){cirle.area(4)} . No veo cómo eso podría ser una sintaxis válida.

Además, ¿por qué no llamarían directamente a la función circle.area() directamente de todos modos?


Esta:

`The area of a circle of radius 4 is ${circle.area(4)}`

es un ejemplo de cadenas de plantillas ES2015 .

Interpola lo que circle.area(4) representa directamente en la cadena. Si tiene curiosidad acerca de esta u otras características de ES2015, le recomiendo revisar Babel y jugar en el REPL.

Aquí hay un ejemplo muy simple para comenzar.

Puedes ver este código ES2015:

const foo = ''some text''; console.log(`${foo} is interpolated.`);

se transpila a su equivalente ES5: una concatenación simple + :

var foo = ''some text''; console.log(foo + '' is interpolated.'');