You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中String.at(index)与String.charAt(index)的差异探究

String.at() 与 String.charAt() 的区别

除了你提到的负索引支持,二者还有一处关键差异:越界访问时的返回值不同,具体区别如下:

  • 负索引处理:at() 支持负整数索引,代表从字符串末尾开始倒数的位置,比如 str.at(-1) 会返回字符串最后一个字符;而 charAt() 不支持负索引,传入负数会自动转为0,返回字符串第一个字符。
  • 越界返回值:当传入的索引超出字符串有效范围(比如索引大于等于字符串长度),charAt() 会返回空字符串 '';而 at() 会返回 undefined。

用代码示例直观展示:

const str = 'hello world';

// 负索引场景
str.at(-1); // 返回 'd'
str.charAt(-1); // 返回 'h'(负索引被强制转为0)

// 越界场景
str.at(20); // 返回 undefined
str.charAt(20); // 返回 ''

额外补充:at() 是ES2022新增的方法,属于较新的API,不过目前主流浏览器均已支持。

内容的提问来源于stack exchange,提问作者Michael Knightly

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 11:49:53