【问题标题】:Why are parentheses not needed in the following ES2015 code using a template literal? [duplicate]为什么在以下使用模板文字的 ES2015 代码中不需要括号? [复制]
【发布时间】:2017-06-10 13:46:36
【问题描述】:

为什么在下面使用模板文字的 ES2015 代码中不需要括号?

['a', 'b'].join`|` // a|b

【问题讨论】:

    标签: javascript


    【解决方案1】:

    很确定这是一个“标记的模板字符串”。来自 ES6 wiki:

    示例:如果模板字符串前面有一个表达式,则它被认为是一个标记的模板字符串。模板字符串之前的表达式被解析后的模板字符串调用。

    function tag(strings, ...values) {
      assert(strings[0] === 'a');
      assert(strings[1] === 'b');
      assert(values[0] === 0);
      return 'whatever';
    }
    tag `a${ 42 }b`  // "whatever"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-21
      • 2016-03-19
      • 1970-01-01
      • 2017-09-08
      • 2014-08-09
      • 2016-02-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多