【问题标题】:How to write Variable inside of Variable in Template String literal?如何在模板字符串文字中的变量内写入变量?
【发布时间】:2017-12-19 22:58:06
【问题描述】:

log(`${chalk.magenta('???? LAUNCH_COMMAND')} ${chalk.green('npm run: ')} ${chalk.red('${LAUNCH_COMMAND}')}` );

这里是问题部分:${chalk.red('${LAUNCH_COMMAND}')}

LAUNCH_COMMAND 是“生产”或“开发”。但是它在另一个 ${} 内部。

【问题讨论】:

标签: javascript node.js object-literal template-strings


【解决方案1】:

Demo

只需在模板字符串文字中使用嵌套变量的变量名称

`${chalk.red(LAUNCH_COMMAND)}` // for nested sting literal just use the variable name 

const LAUNCH_COMMAND = 'hi';
console.log(`${chalk.magenta('?  LAUNCH_COMMAND')} ${chalk.green('npm run: ')} ${chalk.red(LAUNCH_COMMAND)}` );

【讨论】:

    【解决方案2】:

    您不能用引号将变量包含在字符串文字中。

    log(`${chalk.magenta(?  LAUNCH_COMMAND)} ${chalk.green(npm run: )} ${chalk.red(LAUNCH_COMMAND})` ); 
    

    ^ 虽然我不清楚您为什么要编写这样的字符串,但假设应该有效。我假设它是某种动态输出。

    var b = "Cats"
    var c = "Dogs"
    
    function concat(one, two) {
    
      return `${one} and ${two}`;
    
    }
    
    function compare(one, two) {
    
      var ans = one == two ? 'Are the same' : 'Are not the same';
      return ans;
    
    }
    
    console.log(`${concat(b, c)} - ${compare(b, c)}`);

    【讨论】:

    • @Bergi 哦,但确实如此。查看我的编辑,添加了一个 sn-p。
    • 不,尝试第一个sn-p。它会产生 SyntaxError: Invalid or unexpected token.
    • 第一个 sn-p 并不是要运行的,我只是在引用它。我的第二个 sn-p 将原理付诸实践。
    • 我很欣赏这是一个不好的例子。我很抱歉。
    • 问题是magentagreen 的参数不是supposed 是变量。它们需要是字符串文字!
    猜你喜欢
    • 2017-04-25
    • 1970-01-01
    • 2012-09-30
    • 2020-02-07
    • 2021-03-07
    • 1970-01-01
    • 2021-04-16
    • 1970-01-01
    相关资源
    最近更新 更多