天天看點

es6模闆字元串

最近在項目中使用了ES6的模版字元串,在這裡加以總結。

1.之前我們也可以使用JavaScript輸出模版字元串,通常是下面這樣的:

$("#result").append( "He is <b>"+person.name+"</b>"+"and we wish to know his"+person.age+".That is all" );

但是我們可以看到:這樣的傳統做法需要使用大量的“”(雙引号)和 + 來拼接才能得到我們需要的模版。但是這樣是十分不友善的。

于是ES6中提供了模版字元串,用`(反引号)辨別,用${}将變量括起來。上面的例子可以用模版字元串寫成下面這樣:

$("#result").append( `He is <b>${person.name}</b>and we wish to know his${person.age}.that is all` );

這樣的做法就簡潔了很多,我們不需要再使用大量的""和+來拼接字元串和變量。

 2. 當然,模版字元串可以引入變量,不使用變量也是可以的。如下所示:

` I am a man.`

` No matter what you do  I trust you.`

  3. 我們還可以先定義變量,然後在模版字元串中嵌入變量:

var name="zzw";

` ${name},no matter what you do,

I trust you.`

 4.顯然,由于反引号是模版字元串的辨別,如果我們需要在字元串中使用反引号,我們就需要對其進行轉義,如下所示:

`No matter\` what you do, I trust you.`

  5.注意:如果使用模版字元串表示多行字元串,所有的空格和縮進都會被儲存在輸出

console.log( `No matter\` what you do,

I trust you.`);

  輸出結果如下:

es6模闆字元串

 6. 在${}中的大括号裡可以放入任意的JavaScript表達式,還可以進行運算,以及引用對象屬性。

var x=88; var y=100; console.log(`x=${++x},y=${x+y}`);

結果如下所示:

es6模闆字元串

  7.更強大的是:模版字元串還可以調用函數:

function string(){

return "zzw likes es6!";

}

console.log(`你想說什麼?

嗯,${string()}`);

  結果如下所示:

es6模闆字元串

  另外,如果函數的結果不是字元串,那麼,将按照一般的規則轉化為字元串:

function string(){ return 666; } console.log(`你想說什麼? 嗯,${string()}`);

  結果如下所示:

es6模闆字元串

  在這裡,實際上數字666被轉化成了字元串666.

  8.如果在${}中的變量時沒有命名的,那麼會報錯:

console.log(`你想說什麼? 嗯,${string()}`);

  在上面這句代碼中,string()函數沒有聲明,于是報錯:

es6模闆字元串

  9.其實,我們還可以在${}中輸入一個字元串,知識結果仍舊會傳回一個字元串:

console.log(`你想說什麼? 嗯,${"其實我不是變量~"}`);

  結果如下所示:

es6模闆字元串

  10.如果希望引用模版字元串本身,可以像下面這樣寫:

let str="return"+"`Hello! ${name}`"; let func=new Function("name",str); console.log(func("zzw"));

  結果如下:

es6模闆字元串