《ECMAScript6入門》 字串新增方法

2021-10-06 02:44:43 字數 2797 閱讀 3748

1、string.fromcodepoint()

es5 提供string.fromcharcode()方法,用於從 unicode 碼點返回對應字元,但是這個方法不能識別碼點大於0xffff的字元。

es6 提供了string.fromcodepoint()方法,可以識別大於0xffff的字元,彌補了string.fromcharcode()方法的不足。在作用上,正好與下面的codepointat()方法相反。

string.fromcodepoint(0x20bb7)

// "?"

string.fromcodepoint(0x78, 0x1f680, 0x79) === 'x\ud83d\ude80y'

// true

2.string.raw()

es6 還為原生的 string 物件,提供了乙個raw()方法。該方法返回乙個斜槓都被轉義(即斜槓前面再加乙個斜槓)的字串,往往用於模板字串的處理方法。

string.raw`hi\n$!`

// 實際返回 "hi\\n5!",顯示的是轉義後的結果 "hi\n5!"

string.raw`hi\u000a!`;

// 實際返回 "hi\\u000a!",顯示的是轉義後的結果 "hi\u000a!"

如果原字串的斜槓已經轉義,那麼string.raw()會進行再次轉義。

3.例項方法:codepointat()

es6 提供了codepointat()方法,能夠正確處理 4 個位元組儲存的字元,返回乙個字元的碼點。

let s = '?a';

s.codepointat(0) // 134071

s.codepointat(1) // 57271

s.codepointat(2) // 97

4.例項方法:normalize()

許多歐洲語言有語調符號和重音符號。為了表示它們,unicode 提供了兩種方法。一種是直接提供帶重音符號的字元,比如ǒ(\u01d1)。另一種是提供合成符號。

es6 提供字串例項的normalize()方法,用來將字元的不同表示方法統一為同樣的形式,這稱為 unicode 正規化。

'\u01d1'.normalize() === '\u004f\u030c'.normalize()

// true

**5.例項方法:includes(), startswith(), endswith() **

includes():返回布林值,表示是否找到了引數字串。

startswith():返回布林值,表示引數字串是否在原字串的頭部。

endswith():返回布林值,表示引數字串是否在原字串的尾部。

這三個方法都支援第二個引數,表示開始搜尋的位置。

let s = 'hello world!';

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

s.endswith('hello', 5) // true

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

上面**表示,使用第二個引數n時,endswith的行為與其他兩個方法有所不同。它針對前n個字元,而其他兩個方法針對從第n個位置直到字串結束。

6.例項方法:repeat()

repeat方法返回乙個新字串,表示將原字串重複n次。

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

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

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

引數如果是小數,會被取整。

如果repeat的引數是負數或者infinity,會報錯。

如果repeat的引數是字串,則會先轉換成數字。

7.例項方法:padstart(),padend()

es2017 引入了字串補全長度的功能。如果某個字串不夠指定長度,會在頭部或尾部補全。padstart()用於頭部補全,padend()用於尾部補全。

'x'.padstart(5, 'ab') // 'ababx'

'x'.padstart(4, 'ab') // 'abax'

'x'.padend(5, 'ab') // 'xabab'

'x'.padend(4, 'ab') // 'xaba'

8.例項方法:trimstart(),trimend()

例項方法:trimstart(),trimend()

es2019 對字串例項新增了trimstart()和trimend()這兩個方法。它們的行為與trim()一致,trimstart()消除字串頭部的空格,trimend()消除尾部的空格。它們返回的都是新字串,不會修改原始字串。

const s = '  abc  ';

s.trim() // "abc"

s.trimstart() // "abc "

s.trimend() // " abc"

瀏覽器還部署了額外的兩個方法,trimleft()是trimstart()的別名,trimright()是trimend()的別名。

9.例項方法:matchall()

matchall()方法返回乙個正規表示式在當前字串的所有匹配。

《ECMAScript6入門》 字串的擴充套件

1.字串的擴充套件 es6 只要將碼點放入大括號,就能正確解讀該字元。u u u u abc let hello 123 hell u 123 u ud83d ude80 true2.字串的遍歷器介面 es6 為字串新增了遍歷器介面,使得字串可以被for of迴圈遍歷。除了遍歷字串,這個遍歷器最大的...

ECMAScript 6入門類繼承筆記

看類繼承前,先回顧建構函式怎麼實現物件的繼承的 function f function son function inherit s,f inherit son,f let son new son 它實現了哪幾個功能 用來extends和super關鍵字,看乙個簡單的繼承 class a class...

EcmaScript 6 箭頭函式

es5 var total values.reduce function a,b 0 es6 var total values.reduce a,b a b,0 箭頭即乙個函式的簡化 es5 confetti btn click function event es6 confetti btn cli...