为什么在 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+')));
我正在查看一些 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+')));