JavaScript 中的模板字符串是一種方便的字符串語法,允許你在字符串中嵌入表達式和變量。
模板字符串使用反引號 `` 作為字符串的定界符分隔的字面量。
模板字面量是用反引號(`)分隔的字面量,允許多行字符串、帶嵌入表達式的字符串插值和一種叫帶標籤的模板的特殊結構。
語法
`string text`
`string text line 1
string text line 2`
`string text ${expression} string text`
tagFunction`string text ${expression} string text`
參數
- string text:將成為模板字面量的一部分的字符串文本。幾乎允許所有字符,包括換行符和其他空白字符。但是,除非使用了標籤函數,否則無效的轉義序列將導致語法錯誤。
- expression:要插入當前位置的表達式,其值被轉換為字符串或傳遞給 tagFunction。
- tagFunction:如果指定,將使用模板字符串數組和替換表達式調用它,返回值將成為模板字面量的值。
實例
let text = `Hello RUNOOB!`;
嘗試一下 »
瀏覽器支持
模板字面量是 ES6 新特性 (JavaScript 2015),目前一些最新版本瀏覽器都支持:
|
Chrome
|
Edge
|
Firefox
|
Safari
|
Opera
|
|
支持
|
支持
|
支持
|
支持
|
支持
|
模板字符串中可以同時使用單引號和雙引號:
實例
let text = `He's often called "Runoob"`;
嘗試一下 »
模板字符串還支持多行文本,而無需使用特殊的轉義字符:
實例
const multiLineText = `
This is
a multi-line
text.
`;
嘗試一下 »
若要轉義模板字面量中的反引號(`),需在反引號之前加一個反斜槓(\)。
`\`` === "`"; // true
模板字面量用反引號(`)括起來,而不是雙引號(")或單引號(')。
除了普通字符串外,模板字面量還可以包含佔位符——一種由美元符號和大括號分隔的嵌入式表達式:${expression}。
字符串和佔位符被傳遞給一個函數(要麼是默認函數,要麼是自定義函數)。默認函數(當未提供自定義函數時)只執行字符串插值來替換佔位符,然後將這些部分拼接到一個字符串中。
模板字符串中允許我們使用變量:
實例
const name = 'Runoob'; const age = 30; const message = `My name is ${name} and I'm ${age} years old.`;
嘗試一下 »
以上實例中,${name} 和 ${age} 是模板字符串的表達式部分,它們被包含在 ${} 內部,並在運行時求值。
模板字符串允許你在字符串中引用變量、執行函數調用和進行任意的JavaScript表達式。
模板字符串中允許我們使用表達式:
實例
let price = 10;
let VAT = 0.25;
let total = `Total: ${(price * (1 + VAT)).toFixed(2)}`;
嘗試一下 »
模板字符串當作 HTML 模板使用:
實例
let header = "";
let tags = ["RUNOOB", "GOOGLE", "TAOBAO"];
let html = `<h2>${header}</h2><ul>`;
for (const x of tags) {
html += `<li>${x}</li>`;
}
html += `</ul>`;
嘗試一下 »