ES6之字串擴充套件

wade3po發表於2019-02-02

ES6對字串擴充套件了一些功能,開發過程用到的不多,還有一些是Unicode的,這邊就不仔細說那些,簡單提一下ES6對字串擴充套件了哪些。

字元的Unicode表示法做出了改進

提供了codePointmentAt能夠正確處理4個位元組儲存的字元

ES6 提供了String.fromCodePoint方法,可以識別大於0xFFFF的字元,正好與codePointAt方法相反

ES6 為字串新增了遍歷器介面,使得字串可以被for...of迴圈遍歷,可以識別大於0xFFFF的碼點

normalize()方法,用來將字元的不同表示方法統一為同樣的形式,這稱為 Unicode 正規化。

includes(), startsWith(), endsWith(),這幾個方法是開發中可以用得上,常用的indexOf返回的是所在的index,而這幾個方法可以直接返回布林值:

let str = 'Hello world!'; console.log(str.startsWith('H')) // true console.log(str.endsWith('!')) // true console.log(str.includes('o')) // true console.log(str.indexOf('o')) // 4

repeat方法返回一個新字串,表示將原字串重複n次。引數如果是小數,會被取整。引數是負數或者Infinity,會報錯,其他是字串等情況有處理,但是希望不要出現,也就不說了:

let str = 'Hello'; console.log(str.repeat(2)) // HelloHello

padStart(),padEnd(),padStart()用於頭部補全,padEnd()用於尾部補全。這有一些規則,需要使用的時候可以去查一下,這邊簡單使用:

console.log('ab'.padStart(8,'cd'))//cdcdcdab console.log('ab'.padEnd(9, 'cd'))//abcdcdcdc

matchAll方法返回一個正規表示式在當前字串的所有匹配。

模板字串,這也是使用頻率很高的一個,用反引號(`)標識。它可以當作普通字串使用,也可以用來定義多行字串,或者在字串中嵌入變數。模板字串中嵌入變數,需要將變數名寫在${}之中。大括號內部可以放入任意的 JavaScript 表示式,可以進行運算,以及引用物件屬性。模板字串之中還能呼叫函式。模板字串甚至還能巢狀。

模板編譯和標籤模板還有String.raw方法,這三個在我覺得應該不會使用,但是可以知道一下有這個東西。

最後就是字串模板是有限制的,只不過要是我們只是普通使用,就可以不用理會。

歡迎關注Coding個人筆記 公眾號

相關文章