我想在反引号中写反引号。 (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})\`}`;
答案 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})`);