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...