如何在反引号中创建反引号?

时间:2019-06-13 00:30:23

标签: javascript string ecmascript-6

我想在反引号中写反引号。 (es6)

如何在反引号中创建反引号?

const apple = 'apple';
const grape = 'grape';
const money1 = 2000;
const money2 = 1000;


// before
console.log(`${apple} = ${grape === 'grape' ? '(' + money1 + ')' : '(' + money2 + ')'`;

// after  <-- I want
console.log(`${apple} = ${grape === 'grape' ? \`(${money1})\` : \`(${money2})\`}`;

3 个答案:

答案 0 :(得分:3)

删除反斜杠:

const apple = 'apple';
const grape = 'grape';
const money1 = 2000;
const money2 = 1000;

console.log(`${apple} = ${grape === 'grape' ? `(${money1})` : `(${money2})`}`);

如果您要在模板字符串中打印文字背包,则通常只需使用反斜杠即可。

console.log(`\``);

答案 1 :(得分:1)

按字面意义回答您的问题:“将反引号放入反引号中”听起来像是如何将文字反引号放入字符串中。为此,请将其转义。

使用反斜杠将其转义。参见https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#Description

`\``

console.log(`\``)

但是您实际上想要做的并不那么复杂。 JavaScript语法允许将反引号嵌套在$ {}中,而不会转义。

console.log(`Hello ${`world`}, ${`nesting ${`works too`}`}`);

答案 2 :(得分:1)

我意识到您的示例在一定程度上是假设的,但是您的示例有一种更简单的方法,可以避免使用嵌套模板文字:

const apple = 'apple';
const grape = 'grape';
const money1 = 2000;
const money2 = 1000;


console.log(`${apple} = (${grape === 'grape' ? money1 : money2})`);