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

Dar*_*Joy 135 javascript string variables concatenation

我在这里或在MDN上没有看到任何东西.我确定我只是遗漏了一些东西.这个地方必须有一些文件吗?

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

例:

var string = 'this is a string';

console.log(`Insert a string here: ${string}`);
Run Code Online (Sandbox Code Playgroud)

Ric*_*yon 164

你在谈论模板文字.

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

多行字符串:

console.log(`foo
bar`);
// foo
// bar
Run Code Online (Sandbox Code Playgroud)

字符串插值:

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

  • 让我困惑很长一段时间的一件事是模板文字使用反引号,它在键盘的"1"左侧,而不是单引号('). (57认同)
  • 酷:你甚至可以"注入"代码:`console.log(\`你的数组:\n $ {arr.join('\n')} \`)` (15认同)
  • IE不支持`Template Literal`,这很奇怪,或者IE不支持很酷的东西是很自然的。[了解更多](/sf/ask/2974549021/) (2认同)
  • @Sydney 只是想让你知道,在我看到你关于反引号的评论之前,我很困惑为什么我的字符串插值不起作用。谢谢你!! (2认同)

Joe*_*l H 5

如上面的评论中所述,您可以在模板字符串/文字中包含表达式。例:

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


Sha*_*iom 5

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

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

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