unshift在数组开头添加元素并返回新长度,shift删除开头元素并返回被删值;二者均直接修改原数组,不可批量删除,常用于队列操作。

unshift 和 shift 是 JavaScript 数组在头部(开头)增删元素的两个原生方法,一个往开头添加,一个从开头删除,都直接修改原数组。
unshift:在数组开头添加一个或多个元素
它接收任意数量的参数,把它们按顺序插入到数组最前面,并返回操作后的新长度。
- 会改变原数组,不是返回新数组
- 参数顺序就是插入顺序:第一个参数变成索引 0,第二个变成索引 1……
- 支持一次添加多个值,比如
arr.unshift(1, 2, 3)
示例:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
arr.unshift('a'); // arr 变成 ['a', 'b', 'c'],返回 3
arr.unshift('x', 'y'); // arr 变成 ['x', 'y', 'a', 'b', 'c'],返回 5
shift:从数组开头删除一个元素
它移除并返回数组的第一个元素,其余元素自动前移一位。如果数组为空,则返回 undefined。
- 同样直接修改原数组
- 只能删一个,不支持批量删除开头多个元素
- 常和
unshift配合实现“队列”行为(先进先出)
示例:
let arr = ['a', 'b', 'c'];let first = arr.shift(); // first 是 'a',arr 变成 ['b', 'c']
arr.shift(); // 返回 'b',arr 变成 ['c']
arr.shift(); // 返回 'c',arr 变成 []
arr.shift(); // 返回 undefined,arr 仍是 []
注意点和常见误区
- 这两个方法只作用于数组开头,和
push/pop(尾部操作)不要混淆 - 性能上,对很长的数组频繁用
unshift或shift可能稍慢,因为要移动所有后续元素 - 想“不改原数组”地在开头加/删,得用扩展运算符或
slice等组合,比如:[newItem, ...arr]或arr.slice(1)
简单对比小结
可以这样记:
- unshift → “up + shift” 想象把元素“推上去”到最顶(开头)
- shift → “拿走第一个”,就像把一叠纸最上面那张抽掉
- 两者都返回值:
unshift返回新长度,shift返回被删的元素
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










