${}(美元符号和花括号)在 Javascript 的字符串中是什么意思?

IT技术 javascript string variables concatenation
2021-01-29 22:56:43

我在这里或 MDN 上都没有看到任何东西。我确定我只是错过了一些东西。某处必须有一些关于此的文档?

从功能上讲,它似乎允许您将变量嵌套在字符串中,而无需使用+运算符进行连接我正在寻找有关此功能的文档。

例子:

var string = 'this is a string';

console.log(`Insert a string here: ${string}`);

3个回答

你在谈论模板文字

它们允许多行字符串和字符串插值。

多行字符串:

console.log(`foo
bar`);
// foo
// bar

字符串插值:

var foo = 'bar';
console.log(`Let's meet at the ${foo}`);
// Let's meet at the bar

长期以来让我感到困惑的一件事是模板文字使用反引号,它位于键盘上“1”的左侧,而不是单引号 (')。
2021-03-13 22:56:43
酷:你甚至可以“注入”代码: console.log(`Your array:\n ${arr.join('\n ')}`)
2021-04-02 22:56:43
Template LiteralIE 不支持这很奇怪,或者 IE 不支持很酷的东西是很自然的。阅读更多
2021-04-03 22:56:43
@Sydney 只是想让您知道,在看到您对反引号的评论之前,我很困惑为什么我的字符串插值不起作用。谢谢你!!
2021-04-06 22:56:43
似乎是字符串连接的替代方法 console.log("Let's meet at the "+foo);
2021-04-08 22:56:43

正如上面的评论中提到的,您可以在模板字符串/文字中使用表达式。例子:

const one = 1;
const two = 2;
const result = `One add two is ${one + two}`;
console.log(result); // output: One add two is 3

您正在注入表达式,而表达式就是代码。您不能注入任何类型的代码,但只能注入 JavaScript 表达式。
2021-03-19 22:56:43
我会尽量说得更具体一些。使用字符串文字时,我可以使用 ${ } 表示法在任何字符串中注入obj.value 之类的表达式对?
2021-03-21 22:56:43
是的,您可以在控制台中亲自尝试一下,例如 hey ${obj.name}
2021-03-21 22:56:43
说模板字符串可用于将代码注入字符串是否正确?
2021-03-29 22:56:43

您还可以使用模板文字执行隐式类型转换。例子:

let fruits = ["mango","orange","pineapple","papaya"];

console.log(`My favourite fruits are ${fruits}`);
// My favourite fruits are mango,orange,pineapple,papaya