'\u{1F680}' === '\uD83D\uDE80'
大括號表示法與四字節的UTF-16編碼是等價的。
JavaScript共有6種方法可以表示一個字符:
'\z' === 'z' // true
'\172' === 'z' // true
'\x7A' === 'z' // true
'\u007A' === 'z' // true
'\u{7A}' === 'z' // true
codePointAt方法是測試一個字符由兩個字節還是由四個字節組成的最簡單方法。
fromCodePoint方法定義在String對象上,可識別>0xFFFF的字符,而codePointAt方法定義在字符串的實例對象上。
for..of最大的優點是可以識別大於0xFFFF的碼點.
ES6提供字符串實例的normalize()方法,用來將字符的不同表示方法統一為同樣的形式,這稱為Unicode正規化。
normalize()有四個參數:NFC(默認值,表示“標准等價合成”)、NFD(表示“標准等價分解”)、NFKC(表示“兼容等價分解”)、NFKD(表示“兼容等價分解”)
includes(), startsWith(), endsWith()
傳統上,JavaScript只有indexOf方法,可以用來確定一個字符串是否包含在另一個字符串中。ES6又提供了三種新方法。
includes():返回布爾值,表示是否找到了參數字符串。
startsWith():返回布爾值,表示參數字符串是否在源字符串的頭部。
endsWith():返回布爾值,表示參數字符串是否在源字符串的尾部。
這三個方法都支持第二個參數,表示開始搜索的位置。
repeat()方法返回一個新字符串,表示將原字符串重復n次。
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'
不加第二個參數默認使用空格填補。
