Get to know MDN better
此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。
String 的 codePointAt() 方法返回一个非负整数,该整数是从给定索引开始的字符的 Unicode 码位值。请注意,索引仍然基于 UTF-16 码元,而不是 Unicode 码位。
需要返回的字符的(从零开始的)索引。会被转换为整数——undefined 会转换为 0。
一个非负整数,表示给定 index 处字符的码位值。
字符串中的字符从左到右进行索引。第一个字符的索引为 0,而字符串 str 中最后一个字符的索引为 str.length - 1。
Unicode 码位范围从 0 到 1114111(0x10FFFF)。在 UTF-16 中,每个字符串索引是一个取值范围为 0 – 65535 的码元。较高的码位由一个由一对 16 位代理伪字符表示。因此,codePointAt() 返回的码位可能跨越两个字符串索引。有关 Unicode 的信息,请参阅 UTF-16 字符、Unicode 码位和字素簇。
因为使用字符串索引进行循环会导致同一码位被访问两次(一次是前导代理,一次是后尾代理),而第二次调用 codePointAt() 时只返回后尾代理项,所以最好避免使用索引进行循环。
相反,可以使用 for...of 语句或字符串展开语法,这两种方法都会调用字符串的 [Symbol.iterator](),从而按照码位进行迭代。然后,可以使用 codePointAt(0) 获取每个元素的码位值。
| ECMAScript® 2027 Language Specification # sec-string.prototype.codepointat |
启用 JavaScript 以查看此浏览器兼容性表。