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

Javascript 模板字符串中后跟方括号的美元符号,javascript,string,templates,syntax,ecmascript-6,Javascript,String,Templates,Syntax,Ecmascript 6,我在处理一些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`];

我在处理一些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`];
    ...
我可以猜出下面的代码段是做什么的,但它是什么样的库/语法?这不是我以前见过的东西,也不是纯ES6,对吧

`$[vendor}Now`

这似乎是一个语法错误。正确的做法应该是:

`${vendor}Now`
这是这里提到的美元表达式:

模板字符串用反勾(
`
)(重重音)字符括起来,而不是双引号或单引号。模板字符串可以包含占位符。它们由美元符号和大括号(${expression})表示

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

更具体地说,如果您有:

var expression = 'test';

console.log(`string text ${expression} string text`); //Correct syntax
上面的代码将导出:“字符串文本测试字符串文本”

但下面的代码有一个方括号和一个方括号


将只导出:“string text$[expression}string text”

看起来像是个错误。请询问代码作者。除了语法错误之外,所有这些都是不必要的,因为webkit是唯一一个显然使用过
performance.webkitNow
的平台,而这早在v20中就已经出现了。
var expression = 'test';

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