String.fromCodePoint()
由于ES5提供的String.fromCharCode()方法不能返回碼點大于OxFFFF的字符,所以ES6提供了String.fromCodePoint()方法,用來彌補不足。
String.raw()
作用:返回一個斜杠都被轉義的字符串
用處:主要是用在模板字符串的處理上,它可以將模板字符串的變量替換為值,并將/轉義
String.raw()一般不會用作函數(shù),用作參數(shù)時,第一個參數(shù)是一個帶有raw屬性的對象,后面參數(shù)任意多個。
當它用作函數(shù)時的作用是將除了第一個參數(shù)外的參數(shù)插入到第一個參數(shù)的raw屬性對象中。插入方法是隔一個元素插入一個。
實例方法:codePointAt()
由于JavaScrip中不支持字符以UTF-16的格式存儲,所以當一個碼點超過unicodeOxFFFF就會被認為是兩個字符,而charAt不能正常訪問,charCodeAt()只能返回前兩個字節(jié)和后兩個字節(jié)的值。
所以,ES6提供了codePointAt(),可以正確的處理4個字節(jié)存儲的字符
注意:
- codePointAt()返回的碼點是十進制的,如果想要十六進制可以使用.toString(16)。
- 想要正確輸出四個碼點以上的值,可以通過for..of幫助
實例方法:normalize()
normalize可以將Unicode正規(guī)化,用來將字符的不同表示方法統(tǒng)一為同樣的的形式。
normalize的參數(shù)分別是:NFC,NFD,NFKC,NFKD主要用于控制返回值
注意:normalize方法目前不能識別三個或三個以上字符的合成。
實例方法:includes(),startsWith(),endsWith()
這三種方法都是用來判斷一個字符串是否在另一個字符串中。
- includes():返回布爾值,表示是否找到了參數(shù)字符串。
- startsWith():返回布爾值,表示參數(shù)字符串是否在原字符串的頭部。
- endsWith():返回布爾值,表示參數(shù)字符串是否在原字符串的尾部。
注意:三種方法都有第二個參數(shù),但是endsWith的是指前n個字符,而其他兩種方法是從第n個字符到最后一個字符
實例方法:repeat
repeat方法是返回一個新字符串,該字符串是將原字符串重復n次的結果
- 如果n是小數(shù),會先取整
- 如果是負數(shù)或者Infinity,會報錯
- 如果是0- -1之間的小數(shù),會被認為是0
- NaN被認為是0
- 如果n是字符串,則會先轉成數(shù)字。
實例方法:padStart(),padEnd()
ES2017引入了字符串補全功能,如果某個字符串不夠指定長度,那么就可以實現(xiàn)自動補全,其中padstart是頭部補全,padEnd是尾部補全
參數(shù):
- 第一個參數(shù)是指定字符串想要達到的長度
- 第二個參數(shù)是用于補全的字符串
情況
- 如果原字符串的長度等于或大于目的長度,則補全函數(shù)不生效,返回原來的字符
- 如果原字符串加補全字符串的長度大于目的長度,則會截掉部分補全字符串。
- 省略第二個參數(shù),則會用空格來補全長度
用處
- padstart用于補全字符位數(shù)
- 制作提示字符串,如日期。
實例方法:trimStart(),trimEnd()
trimStart()用于消除字符串首部的空格,而trimEnd()用于消除字符串尾部的空格,它們都是返回新的字符串,不會修改原始字符串。