一篇有关新 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

Array.prototype.at。Arrat和 String 中的 at 方法的更多相关文章

  1. String中的“equal方法”和“==”

    二话不说,先来说下重写的事情: 在Java中,String .Math.还有Integer.Double....等这些封装类重写了Object中的equals()方法,让它不再比较其对象在内存中的地址 ...

  2. java基础---->String中的split方法的原理

    这里面主要介绍一下关于String类中的split方法的使用以及原理. split函数的说明 split函数java docs的说明: When there is a positive-width m ...

  3. Java的String中的subString()方法

    方法如下: public String substring(int beginIndex, int endIndex) 第一个int为开始的索引,对应String数字中的开始位置, 第二个是截止的索引 ...

  4. String中intern的方法

    首先查看官方API那个的解释: ——————————————————————————————————————— intern public String intern() 返回字符串对象的规范化表示形 ...

  5. Java 字符串比较,String 中的一些方法 == 和 equals 的详解

    "==" 是比较的是两个对象的内存地址,而equals方法默认情况下是比较两个对象的内存地址. 1.String str = "hello"  生成的字符串,首 ...

  6. java.lang.String中的replace方法到底替换了一个还是全部替换了。

    你没有看错我说的就是那个最常用的java.lang.String,String可以说在Java中使用量最广泛的类了. 但是我却发现我弄错了他的一个API(也可以说是两个API),这个API是关于字符串 ...

  7. Javascript 中 with 的替代方案和String 中的正则方法

    这几天在升级自己的MVVM 框架,遇到很多小问题,就在这里统一解决了. with 语法 在代码中,要执行这么一个函数 function computeExpression(exp, scope) { ...

  8. String中的equals方法解析 jdk1.7

    注  此篇为jdk1.7中的源码解析 equals()方法中的判断分一下步骤 1先判断内存地址是否相同  如果内存地址相同 那么字符串就是相同的 返回true 2 判断当前字符串和参数字是否属于同一类 ...

  9. String中的intern方法

    上一篇你真的会用String吗(3)-关于字符串拼接中我们提到了String.intern()方法,本篇我们就来详细的看下这个方法是干嘛的.首先来看下jdk8中这个方法的注释: When the in ...

  10. java.lang.String中的trim()方法的详细说明(转)

    String.Trim()方法到底为我们做了什么,仅仅是去除字符串两端的空格吗? 一直以为Trim()方法就是把字符串两端的空格字符给删去,其实我错了,而且错的比较离谱. 首先我直接反编译String ...

随机推荐

  1. HTML Cookie

    目录 Cookie是什么 Cookie的属性 Cookie的作用域 Domain 属性 Path 属性 SameSite 属性 Cookie密码验证小案例 效果展示 代码 Cookie是什么 HTTP ...

  2. 【Unity】protobuf故意踩坑记

    写在前面 起因:我看到工作项目使用protobuf来做序列化时脑子冒出许多问号,"以前我按<Unity3D网络游戏实战>做坦克游戏时为了让客户端和服务器使用统一协议用到了prot ...

  3. MySQL_GTID主从同步排错

    1 在Master上 查询gtid后,记录gtid_executed 返回的值 mysql> show global variables like '%gtid%'\G ************ ...

  4. 树莓派3B+ wifi设置

    环境: 硬件:树莓派 3b+ 固件:2018-04-18-raspbian-stretch.img 一.树莓派配置 1.1.wifi配置方法一(已测试,ok) 参考: https://www.cnbl ...

  5. Scala操作Kakfa API

    如需大数据开发整套视频(hadoop\hive\hbase\flume\sqoop\kafka\zookeeper\presto\spark):请联系QQ:1974983704 由于我使用的是kafk ...

  6. 使用npm包安装vant组件

  7. TCP粘包和拆包

    假设客户端分别发送了两个数据包D1和D2给服务器,由于服务器一次读取的字节数是不确定的,故可能存在以下4中情况: 服务端分两次读到了两个独立的数据包D1和D2,没有粘包和拆包 服务端分一次收到两个数据 ...

  8. 网络安全(中职组)-B模块:Windows操作系统渗透测试

    任务环境说明: 服务器场景:teltest 服务器场景操作系统:Windows7 (封闭靶机) 1.通过本地PC中渗透测试平台Kali对服务器场景Windows进行系统服务及版本扫描渗透测试,并将该 ...

  9. Android开发环境的搭建(一)

    开发环境的搭建 Android 应用程序一般使用 Android 软件开发工具包,采用 Java 语言来开发. Android软件开发需要用到的开发工具,如图所示: JDK:相信大家在学习Java语言 ...

  10. 文件的上传&预览&下载学习(三)

    0.参考博客 https://www.pianshen.com/article/18961690151/ (逻辑流程图讲得很清楚) https://www.cnblogs.com/xiahj/p/vu ...