簡體   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