有谁能告诉我在Shift的引擎盖下发生了什么吗?JavaScript中的Unshift()数组方法

Can anyone tell me what is going on under the hood of the Shift( ) & Unshift( ) array methods in JavaScript?

本文关键字:中的 JavaScript Unshift 方法 数组 什么 发生了 告诉我 Shift 引擎      更新时间:2023-09-26

我想确切地知道如何创建函数。我想知道,这样我就可以研究和重新创造他们自己。我知道它们是供我们使用的,但我想把它们分解成首要原则,并了解它们为什么和如何以这种方式工作。

参见ECMAScript语言规范,

  • section 22.1.3.21 - Array.prototype.shift()
  • section 22.1.3.28 - Array.prototype.unshift()

也许像这样的东西可以帮助您了解unshift()方法:

let arr = [1,2,3,4,5,6,7,8,9]
let newArray = []
//foo is like unshift()
foo('start')
function foo(_item){
  newArray[0] = _item
  arr.forEach((x,i) => toArray(i))
}
function toArray(_i){
  newArray[_i + 1] = arr[_i]
}
console.log(newArray)