繁体   English   中英

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

[英]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`];
    ...

我可以猜到下面的代码片段是做什么的,但它是什么类型的库/语法? 这不是我以前见过的东西,它不是纯粹的ES6,对吧?

`$[vendor}Now`

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

`${vendor}Now`

这是美元表达,如下所述: https//developer.mozilla.org/en/docs/Web/JavaScript/Reference/template_strings

模板字符串由反向标记( ` )(重音符号)字符括起,而不是双引号或单引号。 模板字符串可以包含占位符。 这些由美元符号和花括号($ {expression})表示。

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

更具体地说,如果你有:

var expression = 'test';

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

上面的代码将导出:“字符串文本测试字符串文本”

但下面的代码有一个开口方括号和一个关闭花括号

var expression = 'test';

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

将只导出:“字符串文本$ [表达式}字符串文本”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM