新特性:模板字符串
傳統字符串
let name = "Jacky";let occupation = "doctor"; //傳統字符串拼接let str = "He is "+ name +",he is a "+ occupation;
es6簡潔的字符串拼接
let name = "Jacky";let occupation = "doctor";//模板字符串拼接let str = `He is ${name},he is a ${occupation}`;對比兩段拼接的代碼,模板字符串使得我們不再需要反復使用雙引號(或者單引號)了;而是改用反引號標識符(`),插入變量的時候也不需要再使用加號(+)了,而是把變量放入${ }即可。
使用時要注意
1、可以定義多行字符串
傳統的多行字符串寫法:
let str = "write once ," + "run anywhere";
模板字符串的寫法:
let str = `write once , run anywhere`;
直接換行即可,但是要注意的是:所有的空格和所進都會被保留在輸出中。如果控制臺輸出字符串str的話,代碼上換了行,控制臺輸出的時候也會換行。
2、${ }中可以放任意的javascript表達式
${ }中可以是運算表達式
var a = 1;var b = 2;var str = `the result is ${a+b}`;//進行加法運算 結果:the result is 3${ }中可以是對象的屬性
var obj = {"a":1,"b":2};var str = `the result is ${obj.a+obj.b}`;//對象obj的屬性//結果:the result is 3.${ }中可以是函數的調用
function fn() {return 3;}var str = `the result is ${ fn() }`;//函數fn的調用,結果:the result is 3標簽模板
這里的模板指的是上面講的字符串模板,用反引號定義的字符串;而標簽,則指的是一個函數,一個專門處理模板字符串的函數。
var name = "張三";var height = 1.8;tagFn`他叫${name},身高${height}米。`;//標簽+模板字符串//定義一個函數,作為標簽function tagFn(arr,v1,v2){console.log(arr); //結果:[ "他叫",",身高","米。" ]console.log(v1); //結果:張三console.log(v2); //結果:1.8}以上代碼有兩處要仔細講解的,首先是tagFn函數,是我們自定義的一個函數,它有三個參數分別是arr,v1,v2。函數tagFn的調用方式跟以往的不太一樣,以往我們使用括號( )表示函數調用執行,這一次我們在函數名后面直接加上一個模板字符串,如下面的代碼:
tagFn`他叫${name},身高${height}米。`;這樣就是標簽模板,你可以理解為標簽函數+模板字符串,這是一種新的語法規范。
接下來我們繼續看函數的3個參數,從代碼的打印結果我們看到它們運行后對應的結果,arr的值是一個數組:[ "他叫" , ",身高" , "米。" ],而v1的值是變量name的值:“張三”,v2的值是變量height的值:1.8。
新聞熱點
疑難解答
圖片精選