跳到主要内容

JavaScript 字符串 charCodeAt() 方法

charCodeAt() 方法返回一个介于 065535 之间的整数,代表给定索引处的 UTF-16 代码单元。

示例

// 字符串定义
const greeting = "Good morning!";

// 索引 5 处字符的 UTF-16 代码单元
let result = greeting.charCodeAt(5);

console.log(result);

// 输出:109

charCodeAt() 语法

charCodeAt() 方法的语法是:

str.charCodeAt(index);

这里,str 是一个字符串。

charCodeAt() 参数

charCodeAt() 方法接受单个参数:

  • index - 一个介于 0(str.length - 1) 之间的整数。

注意: str.length 返回给定字符串的长度。

charCodeAt() 返回值

  • 返回一个数字,代表给定索引处字符的 UTF-16 代码单元值。

注释

  • charCodeAt() 方法总是返回小于 65,536 的值。
  • 如果一个 Unicode 码点无法用单个 UTF-16 代码单元表示(值大于 0xFFFF),则它返回该代码点的第一部分。

示例 1:使用 charCodeAt() 方法

const greeting = "Good morning!";

// 索引 5 处字符的 UTF-16 代码单元
let result1 = greeting.charCodeAt(5);

console.log(result1);

// 索引 5.2 处字符的 UTF-16 代码单元
let result2 = greeting.charCodeAt(5.2);

console.log(result2);

// 索引 5.9 处字符的 UTF-16 代码单元
let result3 = greeting.charCodeAt(5.9);

console.log(result3);

输出

109;
109;
109;

在上述示例中,我们使用 charCodeAt() 方法访问索引 5 处字符的 UTF-16 代码单元。

由于索引 5 处的字符是 "m",该方法返回 "m" 的 UTF-16 代码单元。

同样,对于非整数索引 5.25.9,数字被转换为最近的整数值,即 5,因此该方法再次返回 "m" 的 UTF-16 代码单元,即 109

示例 2:charCodeAt() 方法索引超出范围

const greeting = "Good morning!";

// 传递大于字符串长度的索引
let result3 = greeting.charCodeAt(18);

console.log(result3);

// 传递非负索引值
let result4 = greeting.charCodeAt(-9);

console.log(result4);

输出

NaN;
NaN;

在上述示例中,我们创建了一个字符串 "Good morning!"

这里,代码 greeting.charCodeAt(18)greeting.charCodeAt(-9) 都返回 NaN,因为索引 18-9 都不在给定字符串中。

示例 3:charCodeAt() 带默认参数

const greeting = "Good morning!";

// 不传递参数调用 charCodeAt()
let result1 = greeting.charCodeAt();

console.log(result1);

// 传递 0 作为参数
let result2 = greeting.charCodeAt(0);

console.log(result2);

输出

71;
71;

在上述示例中,由于我们没有在 charCodeAt() 中传递任何参数,所以默认值将为 0

因此,该方法返回索引 0 处字符的 UTF-16 代码单元,即 71

推荐阅读: JavaScript String fromCharCode()