返回
从 charCodeAt() 返回的到底是啥问起,到理解何为字符编码
前端
2023-11-01 04:55:44
charCodeAt() 简介
charCodeAt() 方法返回给定索引处的 UTF-16 代码单元。
UTF-16 是 Unicode 的一种实现方式,它使用两个字节来表示每个字符。
因此,charCodeAt() 方法返回一个 16 位整数,表示给定索引处的字符。
什么是字符编码?
字符编码是一种将字符映射到数字代码的方式。
这些数字代码可以存储在计算机中,并被计算机处理。
最常见的字符编码是 ASCII 码。
ASCII 码使用 7 位二进制数来表示每个字符,因此它最多可以表示 128 个字符。
UTF-8 和 UTF-16 都是 Unicode 的实现方式。
Unicode 是一个国际标准,它为世界上所有的字符分配了一个唯一的代码。
UTF-8 使用可变长度的字节来表示每个字符,因此它可以表示世界上所有的字符。
UTF-16 使用两个字节来表示每个字符,因此它可以表示世界上大多数字符。
charCodeAt() 返回的是什么?
charCodeAt() 方法返回给定索引处的 UTF-16 代码单元。
然而,在某些情况下,charCodeAt() 方法可能会返回一个 ASCII 字符码点。
这是因为 ASCII 码是 UTF-16 的一个子集。
因此,任何 ASCII 字符都可以用 UTF-16 来表示。
结论
charCodeAt() 方法返回给定索引处的 UTF-16 代码单元。
然而,在某些情况下,charCodeAt() 方法可能会返回一个 ASCII 字符码点。
这是因为 ASCII 码是 UTF-16 的一个子集。
因此,任何 ASCII 字符都可以用 UTF-16 来表示。
示例
// 获取字符串 "Hello" 中第一个字符的 UTF-16 代码单元
const codePoint = "Hello".charCodeAt(0);
// 输出: 72
// 获取字符串 "Hello" 中第二个字符的 UTF-16 代码单元
const codePoint2 = "Hello".charCodeAt(1);
// 输出: 101
// 获取字符串 "Hello" 中第三个字符的 UTF-16 代码单元
const codePoint3 = "Hello".charCodeAt(2);
// 输出: 108
提示
- charCodeAt() 方法可以用于获取字符串中字符的 ASCII 字符码点或 UTF-16 代码单元。
- ASCII 码是 UTF-16 的一个子集,因此任何 ASCII 字符都可以用 UTF-16 来表示。
- charCodeAt() 方法在某些情况下可能会返回一个 ASCII 字符码点,这取决于字符串中的字符。