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)無(wú)法識(shí)別這樣的碼點(diǎn)
2.at()
和charAt()類似,返回指定位置的字符,不同的是,charAt()不能識(shí)別碼點(diǎn)大于0xFFFF的字符但是at可以鉴逞。
不能直接使用扰法,需要通過(guò)墊片庫(kù)實(shí)現(xiàn)
3.includes(), startsWith(), endsWith()
傳統(tǒng)上,JavaScript只有indexOf方法决左,可以用來(lái)確定一個(gè)字符串是否包含在另一個(gè)字符串中。ES6又提供了三種新方法逗载。
indexOf:判斷一個(gè)字符串是否包含指定字符串哆窿,有就返回索引值,沒(méi)有返回-1
includes:判斷一個(gè)字符串中是否包含指定字符串厉斟,返回布爾值
startsWith:判斷一個(gè)字符串是否以制定字符串開(kāi)頭挚躯,返回布爾值。
endsWith:判斷一個(gè)字符串是否以制定字符串結(jié)尾擦秽,返回布爾值码荔。
這三個(gè)方法都支持第二個(gè)參數(shù)漩勤,表示開(kāi)始搜索的位置。
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ù)說(shuō)明:
傳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()
說(shuō)明:將字符串補(bǔ)全到你所想要的位數(shù)瘟栖。
參數(shù):
參數(shù)1:數(shù)字葵擎,指定你想要將字符串補(bǔ)全到多少位。
參數(shù)2:字符串半哟,你想要用什么字符串來(lái)補(bǔ)全酬滤。padStart是在前邊補(bǔ)全,padEnd是在后邊補(bǔ)全寓涨。
參數(shù)說(shuō)明:
如果參數(shù)1小于原來(lái)字符串的長(zhǎng)度盯串,不會(huì)補(bǔ)全,返回原字符串缅茉。
如果參數(shù)二的長(zhǎng)度和原來(lái)字符串長(zhǎng)度的和大于參數(shù)一嘴脾,會(huì)截取參數(shù)二。
如果省略參數(shù)二蔬墩,默認(rèn)以空格補(bǔ)全译打。
padStart的常見(jiàn)用途是為數(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)單
說(shuō)明:
1.es6模板字符串定義的時(shí)候不再是用“str”了韵洋,而是用反引號(hào)`str`(就是esc鍵下方的那個(gè))。
2.es6模板字符串會(huì)識(shí)別空格黄锤、換行搪缨、等格式。
3.es6模板字符串可以識(shí)別\n ?\t \r等格式
4.es6模板字符串?dāng)U展了插值語(yǔ)法鸵熟,不用再豆豆加加了副编。插值語(yǔ)法:${你要插入的數(shù)據(jù)}。
5.想輸出反引號(hào)可以用\轉(zhuǎn)義
7.插值語(yǔ)法的{ }內(nèi)還可以放任意的javascript代碼流强,可以運(yùn)算痹届,引用對(duì)象呻待,也可以調(diào)用函數(shù),將返回值或者運(yùn)算結(jié)果輸出队腐。
8.如果插值語(yǔ)法內(nèi)放入的是字符串蚕捉,那么字符串原樣輸出
9.模板字符串還可以嵌套。
7.Sring.raw
String.raw方法柴淘,往往用來(lái)充當(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è)模板字符串