-
String.fromCodePoint()
- 用於從 Unicode 碼點返回對應字符
-
String.fromCodePoint(0x20BB7) // "𠮷" String.fromCodePoint(0x78, 0x1f680, 0x79) === 'x\uD83D\uDE80y' // true
-
上面代碼中,如果
String.fromCodePoint
方法有多個參數,則它們會被合並成一個字符串返回。
-
String.raw()
-
- 該方法返回一個斜杠都被轉義(即斜杠前面再加一個斜杠)的字符串,往往用於模板字符串的處理方法。
-
String.raw`Hi\n${2+3}!`; // 返回 "Hi\\n5!" String.raw`Hi\u000A!`; // 返回 "Hi\\u000A!"
-
如果原字符串的斜杠已經轉義,那么
String.raw()
會進行再次轉義。 -
String.raw`Hi\\n` // 返回 "Hi\\\\n" String.raw`Hi\\n` === "Hi\\\\n" // true
3.實例方法:
codePointAt()
-
codePointAt()
方法會正確返回 32 位的 UTF-16 字符的碼點(十進制值),碼點的十進制值,如果想要十六進制的值,可以使用toString()
方法轉換一下。- Tip:使用
for...of
循環 codePointAt()
方法是測試一個字符由兩個字節還是由四個字節組成的最簡單方法。代碼如下:-
function is32Bit(c) { return c.codePointAt(0) > 0xFFFF; } is32Bit("𠮷") // true is32Bit("a") // false
4.實例方法:
normalize()
-
- 用來將字符的不同表示方法統一為同樣的形式,這稱為 Unicode 正規化。
5.實例方法:
includes(), startsWith(), endsWith()
-
-
- includes():返回布爾值,表示是否找到了參數字符串。
- startsWith():返回布爾值,表示參數字符串是否在原字符串的頭部。
- endsWith():返回布爾值,表示參數字符串是否在原字符串的尾部。
注意:使用第二個參數
n
時,endsWith
的行為與其他兩個方法有所不同。它針對前n
個字符,而其他兩個方法針對從第n
個位置直到字符串結束。
-
6.實例方法:
repeat()
-
- 返回一個新字符串,表示將原字符串重復
n
次。 -
'x'.repeat(3) // "xxx" 'hello'.repeat(2) // "hellohello" 'na'.repeat(0) // ""
-
參數如果是小數,會被取整。
'na'.repeat(2.9) // "nana"
-
如果
repeat
的參數是負數或者Infinity
,會報錯。'na'.repeat(Infinity) // RangeError 'na'.repeat(-1) // RangeError
- 但是,如果參數是 0 到-1 之間的小數,則等同於 0,這是因為會先進行取整運算。0 到-1 之間的小數,取整以后等於
-0
,repeat
視同為 0。 -
'na'.repeat(-0.9) // ""
-
參數
NaN
等同於 0。'na'.repeat(NaN) // ""
-
如果
repeat
的參數是字符串,則會先轉換成數字。'na'.repeat('na') // "" 'na'.repeat('3') // "nanana"
- 返回一個新字符串,表示將原字符串重復
7.實例方法:
padStart(),padEnd()
-
padStart()
用於頭部補全padEnd()
用於尾部補全。padStart()
和padEnd()
一共接受兩個參數,第一個參數是字符串補全生效的最大長度,第二個參數是用來補全的字符串。
8.實例方法:
trimStart(),trimEnd()
-
trimStart()
消除字符串頭部的空格,trimEnd()
消除尾部的空格。它們返回的都是新字符串,不會修改原始字符串。
9.實例方法:
matchAll()
-
- 方法返回一個正則表達式在當前字符串的所有匹配