节点文档中的这个 `...${...}...` 代码是什么意思?

IT技术 javascript node.js ecmascript-6 template-strings template-literals
2021-02-27 21:20:11

我要一步一步地学习 Express 库和 Node.js。首先我看的是 Nodereqiure(moduleName)函数的细节

我查看了相关文档,在示例文档中发现了一些奇怪的代码:

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

更具体地说是${circle.area(4)}位。

据我了解$,JavaScript 中的 就像任何其他变量一样。当我们在客户端 Web 开发中使用它时,它被用作文档功能的委托(我认为)。使用节点时分配给什么?

最重要的是,这个语法是什么意思? ${circle.area(4)}

如果$只是对某个函数的引用someFunction(),那岂不是等同于 this someFunction(){cirle.area(4)}我没有看到这怎么可能是有效的语法。

另外,他们为什么不直接直接调用circle.area()函数呢?

1个回答

这:

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

ES2015 模板字符串的一个例子

它将任何circle.area(4)表示的内容直接插入到字符串中。如果您对这个或其他 ES2015 特性感到好奇,我建议您查看Babel并在 REPL 中进行尝试

这是一个非常简单的示例,可以帮助您入门。

你可以看到这个 ES2015 代码:

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

被转译为 ES5 等价物 - 一个简单的+串联:

var foo = 'some text';
console.log(foo + ' is interpolated.');
完全有道理,谢谢。这比我想象的要简单得多。
2021-04-22 21:20:11
@SpencerRue 你打赌 - 花一些时间在 Babel/ES2015 上,我相信你会发现各种新的和有趣的功能:)
2021-04-29 21:20:11