美元符号后跟模板字符串中的方括号

Dollar sign followed by a square bracket in a template string

我在弄乱一些 ES6 代码时遇到了这个

let vendors = ['ms', 'moz', 'webkit', 'o'];
let root = window || global;
let performance = window.performance || {};
if (!performance.now) {
  vendors.some(function(vendor) {
    performance.now = performance[`$[vendor}Now`];
    ...

我能猜到下面的代码片段是做什么的,但它是什么样的 library/syntax?这不是我以前见过的东西,也不是纯 ES6 吧?

`$[vendor}Now`

看来这是一个语法错误。正确的应该是:

`${vendor}Now`

这是这里提到的美元表达式:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/template_strings

Template strings are enclosed by the back-tick (`) (grave accent) character instead of double or single quotes. Template strings can contain place holders. These are indicated by the Dollar sign and curly braces (${expression}).

模板字符串中的方括号是错误的。

更具体地说,如果您有:

var expression = 'test';

console.log(`string text ${expression} string text`); //Correct syntax

以上代码将导出:"string text test string text"

但是下面的代码有一个左方括号和一个右方括号 curly bracket

var expression = 'test';

console.log(`string text $[expression} string text`); //Wrong syntax

将仅导出:"string text $[expression} string text"