JavaScript 字符串 charCodeAt() 方法
charCodeAt()
方法返回一个介于 0 和 65535 之间的整数,代表给定索引处的 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.2 和 5.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。