为什么在 javascript 中使用模板字符串表达式 a=`${a}`?

Why use the templatestring expression a=`${a}` in javascript?

我正在查看一些 javascript 代码并注意到使用模板字符串反引号的一行:

a=`${a}`

然而,这似乎对我没有任何影响,因为变量 a 包含一个字符串。

这只是一个 NOP 还是 a 的字符串值会使结果与原始值不同?

反引号主要用于模板字符串、连接变量和诸如此类的东西。 在这种情况下,它纯粹用于将变量转换为字符串。结果是否会改变将取决于变量 a 的用途。

在这种情况下,使用另一种技术将其转换为字符串不会改变结果。

如果 a 不是字符串,这样做会将变量转换为字符串,方法是调用对象原型上可用的 .toString()

function templateString(d) {
  return `${d}`;
}

console.log(templateString('foo bar'));
console.log(templateString(1337));
console.log(templateString(false));
console.log(templateString(undefined));
console.log(templateString({ 'foo': 1337, 'bar': 'baz' }));
console.log(templateString(['foo', 'bar', 'baz']));
console.log(templateString(function(x) { return x; }));
console.log(templateString(new RegExp('\w+')));