JavaScript String charCodeAt()

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

示例

// string definition
const greeting = "Good morning!";

// UTF-16 code unit of character at index 5 let result = greeting .charCodeAt(5);
console.log(result); // Output: 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!";

// UTF-16 code unit of character at index 5 let result1 = greeting .charCodeAt(5);
console.log(result1);
// UTF-16 code unit of character at index 5.2 let result2 = greeting .charCodeAt(5.2);
console.log(result2);
// UTF-16 code unit of character at index 5.9 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!";

// passing index greater than length of string let result3 = greeting.charCodeAt(18);
console.log(result3);
// passing non-negative index value 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!";

// without passing parameter in charCodeAt() let result1 = greeting.charCodeAt();
console.log(result1);
// passing 0 as parameter let result2 = greeting.charCodeAt(0);
console.log(result2);

输出

71
71

在上面的示例中,由于我们在 charCodeAt() 中没有传递任何参数,因此默认值将是 0

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


另请阅读

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战