码元与码点
JavaScript字符串使用了两种Unicode编码混合的策略:UCS-2和UTF-16。对于可以菜哦也能够16位编码的字符(U+0000~U+FFFF),这两种编码实际上是一样的。(《JavaScript高级程序设计》)
关于码元和和码点,通过一个例子进行介绍。
如图,字符串'😊'
只有一个“笑脸”符号,但是通过length
属性发现,“长度”为2,string.length
到底表示什么?答:码元的个数
什么是码元?码元就是编码的最小单元,UTF-16和UCS-2的码元为16个比特(2字节)。也就是说,'😊'
使用了两个码元,也就是4字节进行编码。
通过string.charCodeAt(index)
方法可以返回对应位置的码元。