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
相关产品推荐
相关产品推荐

