'u{1F680}' === 'uD83DuDE80'
大括号表示法与四字节的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'
不加第二个参数默认使用空格填补。