更好的Unicode支持
在ES6
之前,JS
的字符串以16
位字符编码(UCS-2
)为基础。每个16
位序列都是一个码元(code unit),用于表示一个字符。字符串所有的属性与方法(像是length
属性与charAt()
方法)都是基于16
位的码元。当然,16
位曾经足以容纳任何字符,然而由于Unicode
引入了扩展字符集,这就不再够用了。
然而
UTF-16
是变长的字符编码方式,有16
位与32
位两种情况。JS
原先使用的则是固定16
位(双字节)的字符编码方式,即UCS-2
。