字符串的擴(kuò)展

1.for of (遍歷字符串)

let str='少多了幾分搭街坊,dfldjflk';

for(let code of str){

console.log(code)

}

除了遍歷字符串,這個(gè)遍歷器最大的優(yōu)點(diǎn)是可以識(shí)別大于0xFFFF的碼點(diǎn),傳統(tǒng)的for循環(huán)無法識(shí)別這樣的碼點(diǎn)


2.at()

和charAt()類似,返回指定位置的字符,不同的是,charAt()不能識(shí)別碼點(diǎn)大于0xFFFF的字符但是at可以。

不能直接使用,需要通過墊片庫實(shí)現(xiàn)


3.includes(), startsWith(), endsWith()

傳統(tǒng)上,JavaScript只有indexOf方法,可以用來確定一個(gè)字符串是否包含在另一個(gè)字符串中。ES6又提供了三種新方法。

indexOf:判斷一個(gè)字符串是否包含指定字符串,有就返回索引值,沒有返回-1

includes:判斷一個(gè)字符串中是否包含指定字符串,返回布爾值

startsWith:判斷一個(gè)字符串是否以制定字符串開頭,返回布爾值。

endsWith:判斷一個(gè)字符串是否以制定字符串結(jié)尾,返回布爾值。

這三個(gè)方法都支持第二個(gè)參數(shù),表示開始搜索的位置。

vars='Hello world!';

s.startsWith('world',6)// true

s.endsWith('Hello',5)// true?

s.includes('Hello',6)// false

上面代碼表示,使用第二個(gè)參數(shù)n時(shí),endsWith的行為與其他兩個(gè)方法有所不同。它針對(duì)前n個(gè)字符,而其他兩個(gè)方法針對(duì)從第n個(gè)位置直到字符串結(jié)束。

4.repeat()

repeat方法返回一個(gè)新字符串,表示將原字符串重復(fù)n次

用法:str.repeat(num)

'x'.repeat(3)// "xxx"

'hello'.repeat(2)// "hellohello"

'na'.repeat(0)// ""

參數(shù)說明:

傳0返回空字符串

傳小數(shù)會(huì)被取整重復(fù)

傳負(fù)數(shù)或者Infinity會(huì)報(bào)錯(cuò)

傳0~-1的小數(shù)或者NaN會(huì)被當(dāng)作0,返回空字符串

傳入字符串,會(huì)先隱式轉(zhuǎn)換成數(shù)字再做重復(fù)。


5.padStart() padEnd()

說明:將字符串補(bǔ)全到你所想要的位數(shù)。

參數(shù):

參數(shù)1:數(shù)字,指定你想要將字符串補(bǔ)全到多少位。

參數(shù)2:字符串,你想要用什么字符串來補(bǔ)全。padStart是在前邊補(bǔ)全,padEnd是在后邊補(bǔ)全。

參數(shù)說明:

如果參數(shù)1小于原來字符串的長(zhǎng)度,不會(huì)補(bǔ)全,返回原字符串。

如果參數(shù)二的長(zhǎng)度和原來字符串長(zhǎng)度的和大于參數(shù)一,會(huì)截取參數(shù)二。

如果省略參數(shù)二,默認(rèn)以空格補(bǔ)全。

padStart的常見用途是為數(shù)值補(bǔ)全指定位數(shù)。下面代碼生成10位的數(shù)值字符串。

'1'.padStart(10,'0')// "0000000001"

'12'.padStart(10,'0')// "0000000012"

'123456'.padStart(10,'0')// "0000123456"

另一個(gè)用途是提示字符串格式。

'12'.padStart(10,'YYYY-MM-DD')// "YYYY-MM-12"

'09-12'.padStart(10,'YYYY-MM-DD')// "YYYY-09-12"


6.模板字符串

在es5中,我們用原生js字符串拼接html模板非常麻煩。

現(xiàn)在在es6里面很簡(jiǎn)單

說明:

1.es6模板字符串定義的時(shí)候不再是用“str”了,而是用反引號(hào)`str`(就是esc鍵下方的那個(gè))。

2.es6模板字符串會(huì)識(shí)別空格、換行、等格式。

3.es6模板字符串可以識(shí)別\n ?\t \r等格式

4.es6模板字符串?dāng)U展了插值語法,不用再豆豆加加了。插值語法:${你要插入的數(shù)據(jù)}。

5.想輸出反引號(hào)可以用\轉(zhuǎn)義

7.插值語法的{ }內(nèi)還可以放任意的javascript代碼,可以運(yùn)算,引用對(duì)象,也可以調(diào)用函數(shù),將返回值或者運(yùn)算結(jié)果輸出。

8.如果插值語法內(nèi)放入的是字符串,那么字符串原樣輸出

9.模板字符串還可以嵌套。


7.Sring.raw

String.raw方法,往往用來充當(dāng)模板字符串的處理函數(shù)

Sring.raw后面跟一個(gè)模板字符串做參數(shù),這個(gè)方法將后面的模板字符串中的轉(zhuǎn)義字符(\n \t \r 等)全部原樣輸出,相當(dāng)于二次轉(zhuǎn)移(\n-->\\n)

如果原字符串的斜杠已經(jīng)轉(zhuǎn)義,那么String.raw不會(huì)做任何處理。

用法:

不再是Sring.raw()而是Sring.raw后面直接寫一個(gè)模板字符串


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容