1.字符串插值
單行和多行字符串的直觀表達式插值。 (注意:不要混淆,模板文字最初在ECMAScript 6語言規範草案中命名爲“模板字符串”)
ECMAScript 6
var customer = { name: "Foo"}
var card = { amount: 7, product: "Bar", unitprice: 42}
var message = `Hello ${customer.name},
want to buy ${car.amount} ${card.product} for
a total of ${card.amount * card.unitprice} bucks ?`
//前後結尾的是右上頓號` 鍵盤tab上面的按鍵,不是單引號',換行不需要換行符
ECMAScript 5
var customer = { name: "Foo"};
var card = { amount: 7, product: "Bar", unitprice: 42};
var message = "Hello" + customer.name + ",\n" + "want to buy" + card.amount + " "+ card.product + "for\n" + "a total of" + (card.amount * card.unitprice) + "bucks?";
2.自定義插值
任意方法的靈活表達插值
ECMAScript 6
get`http://example.com/foo?bar=${bar + baz}&quux=${quux}
ECMAScript 5
get(["http://example.com/foo?bar=", "&quux=", ""],bar + baz, quux);
3.原始字符串訪問
訪問原始模板字符串內容(不解釋反斜槓)。(看不懂)
ECMAScript 6
function quux (strings, ...values) {
strings[0] === "foo\n"
strings[1] === "bar"
strings.raw[0] === "foo\\n"
strings.raw[1] === "bar"
values[0] === 42
}
quux`foo\n${ 42 }bar`
String.raw`foo\n${ 42 }bar` === "foo\\n42bar"
ECMAScript 5
//ES5中沒有對應的表達方式