Array.prototype.at。Arrat和 String 中的 at 方法

一篇有关新 js 特性 at 方法的思考

  • 入参只能是number 类型,允许入参有小数(按照 chrome DevTools Console 测试确实可以带小数)
  • 有返回值,如果对应下标在实例中存在,则返回对应的 value,如果不存在,返回 undefined
  • at 可以用在 Array 或者 String 实例上
  • polyfill 实现

polyfill started (ES3)

function at(arg){
  // 因为入参允许存在小数点情况,这里需要处理掉小数点
  var idx = Math.trunc(arg) || 0;
  // 在ES3、ES5 中没有 at 的特性支持,需要通过 js 手动实现 at 入参为负数的特性
  // 因此用实例 length + 入参下标计算出结果
  if (idx < 0) { idx += this.length };
  // 根据下标读取数值包头不包尾的原则,处理传入参数经过计算后还是有 `下标越界` 这种情况时,返回 undefined
  if (idx < 0 || idx >= this.length) { return undefined };
  // 此时 idx 为正整数,直接用 idx 读取下标值并返回
  return this[idx]
}
// 向原型链注入特性
String.prototype.at = at;
Array.prototype.at = at
posted @   骚猪佩琦  阅读(106)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
点击右上角即可分享
微信分享提示