代码单元

**代码单元**是字符编码系统(如UTF-8或UTF-16)使用的基本组件。字符编码系统使用一个或多个代码单元来编码Unicode 代码点

在UTF-16(JavaScript字符串使用的编码系统)中,代码单元是16位值。这意味着诸如索引到字符串或获取字符串长度之类的操作都作用于这些16位单元。这些单元并不总是与我们可能认为的字符一一对应。

例如,带有变音符号(如重音符号)的字符有时可以使用两个Unicode代码点来表示。

js
const myString = "\u006E\u0303";
console.log(myString); // ñ
console.log(myString.length); // 2

此外,由于并非所有Unicode定义的代码点都适合16位,因此许多Unicode代码点被编码为一对UTF-16代码单元,这称为代理对

js
const face = "🥵";
console.log(face.length); // 2

JavaScript String 对象的 codePointAt() 方法使您能够从其编码形式检索Unicode代码点。

js
const face = "🥵";
console.log(face.codePointAt(0)); // 129397

另请参阅