缘由

  • 起源于《es6标准入门》数组的扩展中[].slice.call(arrayLike)

原理分析

  • slice底层实现就是使用循环实现的
var arr = [];
let arrayLike={0:'a',1:'b',2:'c',length:3
}
for (var i = 0; i < arrayLike.length; i++) {arr.push(arrayLike[i]);
}
console.log('原理=>',arr);
//等价写法
console.log('快捷=>',[].slice.call(arrayLike));
复制代码

slice规格

  • 从js规格看原理
  • slice规格链接

摘录备注三

The slice function is intentionally generic; it does not require that its this value be an Array object. Therefore it can be transferred to other kinds of objects for use as a method.
复制代码
  • 意思就是,slice这样实现是有意为之,考虑的就是它的扩展性和通用性,我们可以有意的进行扩展和转移

转载于:https://juejin.im/post/5cd3f78bf265da03b91832a2

[].slice.call相关推荐

  1. Rocksdb Slice使用中的一个小坑

    本文记录一下使用Rocksdb Slice过程中的一个小小坑,差点没一口老血吐出来. rocksdb的Slice 数据结构是一个小型得不可变类string数据结构,设计出来的目的是为了保证rocksd ...

  2. 【Go】Go基础(六):数组、切片slice、映射map

    1.数组 1.1 数组定义 数组:数组是具有相同 唯一类型 的一组已编号且长度固定的数据项序列. 数组长度必须是一个常量表达式,并且必须是一个非负整数.数组长度也是数组类型的一部分,所以[5]int和 ...

  3. 【GoLang】深入理解slice len cap什么算法? 参数传递有啥蹊跷?

    先上结论 1.内置append函数在现有数组的长度 < 1024 时 cap 增长是翻倍的,再往上的增长率则是 1.25,至于为何后面会说. 2.Go语言中channel,slice,map这三 ...

  4. static slice是什么呢?

    参考:Computing Static Slice for Java Programs - 百度学术 Slicing is an analysis technique that reduces pro ...

  5. 使用slice和concat对数组的深拷贝和浅拷贝

    一.数组浅拷贝 在使用JavaScript对数组进行操作的时候,我们经常需要将数组进行备份. 如下代码,如果只是简单才用赋值的方法,那么我们只要更改其中的任何一个,然后其他的也会跟着改变,这就导致了问 ...

  6. python编程之slice与indices函数用法

    这篇文章主要介绍了详解python编程中slice与indices使用示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪 一般来说,内置的slice()函数会创建一个切片 ...

  7. R语言dplyr包的slice函数提取数据集的数据行实战

    R语言dplyr包的slice函数提取数据集的数据行实战 目录 R语言dplyr包的slice函数提取数据集的数据行实战 #导入dplyr包

  8. go slice获取唯一值_Go语言引用传递与值传递

    先说结论 GO中只有值传递,没有引用传递 所谓值传递,就是实参通过拷贝将自身内容传递给形参.也就是将传递的内容拷贝一份,给函数.所以函数外和函数里对这个参数地址求值,应该是不一样的. 证明如下: fu ...

  9. Python高级特性——切片(Slice)

    Python高级特性--切片(Slice) 摘录廖雪峰网站 定义一个list: L = ['haha','xixi','hehe','heihei','gaga'] 取其前三个元素: >> ...

  10. JS服务器端开发基础篇(Array.slice方法和splice方法)

    Array.slice方法和splice方法在众多的JS数组中属于比较复杂的一个方法,而且容易记混.搜索网络上很多资料都没有发现系统的总结.特别归纳如下,不完全处还希望各位批评指正.  一.slice ...

最新文章

  1. C++ 类模板的使用
  2. 对数组中的数字 1 和 2 进行排序,使得数字 1、2 分别位于前、后部分
  3. CMD用什么命令可以删除服务?
  4. c语言课程设计走迷宫游戏,C语言课程设计-迷宫游戏.doc
  5. 使用Ant将windows下开发的Struts2应用直接部署到Linux上
  6. 黑马程序员_java异常处理机制
  7. linux新手入门必看
  8. B - Beautiful Paintings
  9. The 6 richest people in the world
  10. UnityShader19:渲染纹理(上)之截屏功能实现
  11. 鱼哥,我怕蛇,可以搞Python么?
  12. HBase Shell 命令私藏
  13. Java HttpUtils 请求工具类
  14. 欲戴王冠,必承其重。
  15. 如何避开微信小程序的审核机制(实测有效)
  16. helm和operator
  17. 手机通过蓝牙共享网络给电脑上网
  18. 区块链游戏走出一地鸡毛,元宇宙3D国风链游或成最大受益者
  19. xmlHttp.send(null)与xmlHttp.send(url)
  20. wd 文件服务器客服电话,wd 云服务器

热门文章

  1. (王道408考研操作系统)第二章进程管理-第三节3:实现进程互斥的硬件方法
  2. Python 安装第三方库,模块和包的安装方法
  3. 193. 有效电话号码
  4. 原码,反码,补码,移码四种机器码的表示方法及0的四种表示方法
  5. dpkg status database is locked by another process
  6. C/C++语言函数参数里的“...”作用,va_list的使用(stdarg.h)
  7. UNION,EXISTS,IN等在SQL语句中的灵活应用和场境的选择。
  8. Excellent Service
  9. 又又叒更新,Win 12要来了?
  10. 宣战抖音!腾讯与头条之战的新局面与猜想