用法

unshift() :向数组最前方添加一个或者多个元素,并且会返回新的数组长度。

shift() : shift()方法和unshift()方法相反。shift()把数组的第一个元素从其中删除,并返回被删除的值。如果数组是空的,将不进行任何操作,返回undefined。

push(): 向数组末尾添加一个或者多个元素,并返回新的长度。

pop(): 删除数组的最后一个元素,把数组的长度减1,并且返回它被删除元素的值,如果数组变为空,则该方法不改变数组,返回undefine值。

性能对比

从用法上来看,unshift()是添加在头部,需要把已有的顶下去,而push()是直接添加末尾并不需要改变其他顺序。随意可想而知push()的性能更好,添加更快。

代码测试

利用for循环向数组中添加数据,使用Date函数获取记录时间,得出性能进行对比。

var pu=[]var pushTime =+new Date()   // +new Date() === new Date().valueOf() 返回当前毫秒数console.log("push前时间"+pushTime);// push 性能for (let i = 0; i < 100000; i++) {pu.push(i)}console.log("push后时间"+new Date().valueOf());console.log(+new Date-pushTime); //现在的时间减去刚刚的时间 得出push添加所需的时间console.log("------------unshift性能-------------");// unshift 性能var un=[]var unshiftTime =+new Date()console.log('unshiff前时间'+unshiftTime);for (let j = 0; j < 100000; j++) {un.unshift(j)}console.log('unshiff后时间'+new Date().valueOf());console.log(+new Date()-unshiftTime);

效果图

来瞧一瞧unshift和push的用法及“性能“对比相关推荐

  1. javascript数组(array)的常用方法(shift/unshift/pop/push/concat/splice/reverse/sort/slice/join)

    数组array 今天简单的介绍一下array对象的常用方法(shift/unshift/pop/push/concat/splice/reverse/sort/slice/join)在这就不多说直接撸 ...

  2. 我睁大了眼睛向四周瞧一瞧

    再把面放进去的火车 今天的再把面放进去的火车,如绸带舞跃于音符,然后加入少量80度-95度的热水,这样可以让调味料溶化,我睁大了眼睛向四周瞧一瞧,演奏完毕,摇摇头的自言自语道,那位美女成了我的新主人, ...

  3. Git push 常见用法

    Git push 常见用法 - 浅浅念 - 博客园Git push 在使用git commit命令将修改从暂存区提交到本地版本库后,只剩下最后一步将本地版本库的分支推送到远程服务器上对应的分支了,如果 ...

  4. js中数组增删查改unshift、push、pop、shift、slice、indexOf、concat、join

    全栈工程师开发手册 (作者:栾鹏) js系列教程1-数组操作全解 js中数组增删查改 代码如下: //元素增加 var names=[]; //定义数组并初始化为空 names = ["小明 ...

  5. JavaScript中slice()、splice()、split()、join()、unshift()、push()

    slice()和splice()都是数组截取方法(字符串中也有slice()方法); 1.a:slice(start,end)接受两个参数,第一个参数表示截取起始位置, 第二个参数表示截取终止位置(不 ...

  6. js中对数组的增删方法:push(),pop(),unshift(),shift(),splice()的用法小结

    1.push().pop()和unshift().shift() 这两组同为对数组的操作,并且会改变数组的本身的长度及内容. 不同的是 push().pop() 是从数组的尾部进行增减,unshift ...

  7. mysql免费框架_瞧一瞧~看一看~MyCat架构剖析免费不要钱!(上)

    一.MyCat总体架构介绍 1.源码下载及导入 导入Idea 2.总体架构 MyCat在逻辑上由几个模块组成: 通信协议.路由解析.结果集处理.数据库连接.监控等模块.如图所示: 通信协议模块: 通信 ...

  8. 瞧一瞧,看一看,微信应用号(小程序)

    2016年9月22日凌晨,微信宣布"小程序"问世,妈的,论坛,博客全是小程序,昨天当之无愧抢了头条,当然只是开始内测了,微信公众平台对200个服务号发送了小程序内测邀请.那么什么是 ...

  9. 微信隐藏功能,你们快来瞧一瞧

    你们真的了解微信吗?用了好几年的微信,我也是刚知道,微信上隐藏着一个非常实用的功能,在工作生活中都很方便,下面让我们一起来了解一下这个功能吧. 一.边写边译 1.首先我们在微信上,找到任意一位好友,打 ...

最新文章

  1. android挂载usb设备,android usb挂载分析---MountService启动
  2. 从内存中加载并启动一个exe
  3. 谷歌大脑自门控激活函数Swish
  4. 华三交换机接口配置access_二层交换——交换机的基础和VLAN
  5. kafka rabbitmq优劣对比_Kafka、RabbitMQ、RocketMQ等消息中间件的对比
  6. 利用循环队列的思想进行加密解密(洛谷P1914题题解,Java语言描述)
  7. 按大小排序php,php中按大小进行排序的函数有哪些
  8. [GNU LD系列 3.3] 简单的链接脚本例程
  9. CentOS7虚拟机断电,出现:“Entering emergency mode. Exit the shell to continue.”
  10. 激活Navicat premium12时出现“Rsa public key not find“报错时的解决方法
  11. 前端核心工作内容有哪些?
  12. 12张大数据图看看2016年世界各地发生大事件!
  13. 什么情况下,英文单词中的k发音变g,t发音变d,p发音变b
  14. nand flash地址机制
  15. 算法设计与分析基础 第六章谜题
  16. “在XML文件中给代码加注释”请注意注释的位置
  17. 高通平台开发系列讲解(系统篇)coredump
  18. 写在冬日的第一天--一个女程序员第十七年工作总结
  19. PAC文件解释-转载 小胡子哥的个人网站
  20. 动作手游实时PVP帧同步方案(客户端)

热门文章

  1. K_A02_001 基于单片机驱动4位数码管模块(74HC595) 0-3滚动+ 时钟显示
  2. Go 基于原生的HTTP请求封装
  3. 重新安装键盘鼠标后,PS2键盘无法识别问题!
  4. android 数据备份
  5. react-router(路由)
  6. Reactor模式:反应器模式
  7. 爬取掌阅app免费电子书数据
  8. 经典IIR数字滤波器设计一般步骤的总结
  9. ​Au入门系列之二:波形编辑
  10. 稀疏特征(稀疏矩阵)