Array.shift() 移除首个元素

最后更新:2026-09-09

Array.shift() 移除首个元素

shift 移除数组的第一个元素并返回它;空数组返回 undefined。与 unshift 组成队列(先进先出)操作。注意 shift 需要移动后面所有元素,大数组上性能差于 pop。

分类数组
ES 版本ES1(1997)

📝 语法

const 被移除的元素 = 数组.shift();

返回值:被移除的首元素;空数组返回 undefined。

是否修改原值:是(原地修改)

▶ 示例

编辑下方代码,点击运行,在输出面板查看结果:

运行结果:

顾客1
2
undefined
⚠️ 警告 shift 是 O(n) 操作——每次移除首元素,后面全部元素要前移一位。高频场景考虑用链表或双端循环缓冲。
💡 提示 const [first, ...rest] = arr 是不污染原数组的取首元素写法。

🌐 浏览器支持

浏览器 ChromeChrome EdgeEdge FirefoxFirefox SafariSafari OperaOpera
Array.shift() v1 v12 v1.5 v3 v10.5
所有现代浏览器均支持
更多实战案例即将上线,敬请期待。

📚 相关教程

❓ 常见问题

Qshift 和 pop 的性能差异?
Apop 是 O(1)(只动末尾);shift 是 O(n)(全部元素前移)。大数组频繁 shift 会成为瓶颈。
Qshift 和 slice(1) 的区别?
Ashift 修改原数组并返回被删元素;slice(1) 返回去掉首元素的新数组、原数组不变。
Q如何安全地循环消费队列?
Awhile (queue.length) { const item = queue.shift(); ... }——每次 shift 后 length 变化,循环条件会自动终止。
Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏