ES6之模版字符串的具體使用
最近在項(xiàng)目中使用了ES6的模版字符串,在這里加以總結(jié)。
1.之前我們也可以使用JavaScript輸出模版字符串,通常是下面這樣的:
$("#result").append( "He is <b>"+person.name+"</b>"+"and we wish to know his"+person.age+".That is all" );
但是我們可以看到:這樣的傳統(tǒng)做法需要使用大量的“”(雙引號)和 + 來拼接才能得到我們需要的模版。但是這樣是十分不方便的。
于是ES6中提供了模版字符串,用`(反引號)標(biāo)識,用${}將變量括起來。上面的例子可以用模版字符串寫成下面這樣:
$("#result").append( `He is <b>${person.name}</b>and we wish to know his${person.age}.that is all` );
這樣的做法就簡潔了很多,我們不需要再使用大量的""和+來拼接字符串和變量。
2. 當(dāng)然,模版字符串可以引入變量,不使用變量也是可以的。如下所示:
` 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.顯然,由于反引號是模版字符串的標(biāo)識,如果我們需要在字符串中使用反引號,我們就需要對其進(jìn)行轉(zhuǎn)義,如下所示:
`No matter\` what you do,
I trust you.`
5.注意:如果使用模版字符串表示多行字符串,所有的空格和縮進(jìn)都會被保存在輸出中??!
console.log( `No matter\` what you do, I trust you.`);
輸出結(jié)果如下:
6. 在${}中的大括號里可以放入任意的JavaScript表達(dá)式,還可以進(jìn)行運(yùn)算,以及引用對象屬性。
var x=88; var y=100; console.log(`x=${++x},y=${x+y}`);
結(jié)果如下所示:
7.更強(qiáng)大的是:模版字符串還可以調(diào)用函數(shù):
function string(){ return "zzw likes es6!"; } console.log(`你想說什么?嗯,${string()}`);
結(jié)果如下所示:
另外,如果函數(shù)的結(jié)果不是字符串,那么,將按照一般的規(guī)則轉(zhuǎn)化為字符串:
function string(){ return 666; } console.log(`你想說什么? 嗯,${string()}`);
結(jié)果如下所示:
在這里,實(shí)際上數(shù)字666被轉(zhuǎn)化成了字符串666.
8.如果在${}中的變量時(shí)沒有命名的,那么會報(bào)錯(cuò):
console.log(`你想說什么? 嗯,${string()}`);
在上面這句代碼中,string()函數(shù)沒有聲明,于是報(bào)錯(cuò):
9.其實(shí),我們還可以在${}中輸入一個(gè)字符串,知識結(jié)果仍舊會返回一個(gè)字符串:
console.log(`你想說什么?嗯,${"其實(shí)我不是變量~"}`);
結(jié)果如下所示:
10.如果希望引用模版字符串本身,可以像下面這樣寫:
let str="return"+"`Hello! ${name}`"; let func=new Function("name",str); console.log(func("zzw"));
結(jié)果如下:
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
原生JS實(shí)現(xiàn)隨機(jī)點(diǎn)名項(xiàng)目的實(shí)例代碼
這篇文章主要介紹了原生JS實(shí)現(xiàn)隨機(jī)點(diǎn)名項(xiàng)目的實(shí)例代碼,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2019-04-04JS實(shí)現(xiàn)的四級密碼強(qiáng)度檢測功能示例
這篇文章主要介紹了JS實(shí)現(xiàn)的四級密碼強(qiáng)度檢測功能,具有實(shí)時(shí)檢測輸入密碼強(qiáng)度的功能,涉及javascript針對字符串的正則判定相關(guān)操作技巧,需要的朋友可以參考下2017-05-05用canvas 實(shí)現(xiàn)個(gè)圖片三角化(LOW POLY)效果
這篇文章主要介紹了用canvas 實(shí)現(xiàn)個(gè)圖片三角化(LOW POLY)效果 的相關(guān)資料,需要的朋友可以參考下2016-02-02js+html獲取系統(tǒng)當(dāng)前時(shí)間
這篇文章主要為大家詳細(xì)介紹了javascript html獲取系統(tǒng)當(dāng)前時(shí)間,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11不用ajax實(shí)現(xiàn)點(diǎn)擊文字即可編輯的方法
本文給大家分享一段代碼不使用ajax實(shí)現(xiàn)點(diǎn)擊文字即可編輯的方法,代碼簡單易懂,需要的朋友參考下吧2007-12-12scrapyd schedule.json setting 傳入多個(gè)值問題
這篇文章主要介紹了scrapyd schedule.json setting 傳入多個(gè)值,本文給出了問題分析及思路解決方案,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2019-08-08js實(shí)現(xiàn)的奧運(yùn)倒計(jì)時(shí)時(shí)鐘效果代碼
這篇文章主要介紹了js實(shí)現(xiàn)的奧運(yùn)倒計(jì)時(shí)時(shí)鐘效果代碼,可實(shí)現(xiàn)根據(jù)指定時(shí)間進(jìn)行倒計(jì)時(shí)的實(shí)時(shí)顯示效果,非常簡單實(shí)用,需要的朋友可以參考下2015-12-12