>웹 프론트엔드 >JS 튜토리얼 >Array.prototype.push가 추가된 항목이 아닌 길이를 반환하는 이유는 무엇입니까?

Array.prototype.push가 추가된 항목이 아닌 길이를 반환하는 이유는 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-10-22 10:09:30754검색

Why Does Array.prototype.push Return the Length and Not the Appended Item?

Array.prototype.push의 흥미로운 사례: 더 편리한 것 대신 길이를 반환하는 이유

Array.prototype.push는 하나 이상의 요소로 배열을 확장하는 JavaScript 메소드입니다. 새로 추가된 항목이나 수정된 ​​배열 자체를 반환하는 보다 직관적인 대응 항목과 달리 push는 흥미롭게도 배열의 새 길이를 반환합니다. 이러한 파격적인 행동은 현재 구현으로 이어진 디자인 결정에 대한 의문을 제기했습니다.

역사적 맥락

이 디자인 선택의 근거를 밝히기 위해 우리는 푸시의 역사. TC39의 통신 허브에 따르면 푸시는 Perl의 배열 조작 기능에서 영감을 받아 1997년 JavaScript 1.2(Netscape 4)에서 데뷔했습니다. 처음에 push는 Perl 4 규칙을 준수하여 마지막으로 푸시된 항목을 반환했습니다. 그러나 JavaScript 1.3(Netscape 4.06)에서는 push가 Perl 5에 맞춰 동작을 변경하여 배열의 새 길이를 반환했습니다.

합리화

새 길이를 반환한 이유 추가된 항목이나 변형된 배열을 반환하는 것보다 길이가 더 적절하다고 간주됩니까? 불행히도 이 질문은 아직 답이 없습니다. 역사적 기록은 Perl 4와 이러한 차이가 발생한 이유에 대한 세부 정보를 제공하지 않습니다. 그러나 몇 가지 잠재적인 고려 사항을 추측할 수 있습니다.

  • 구현 단순화: 새 길이를 반환하면 추가된 항목이나 수정된 ​​배열을 추적하고 조작하는 데 더 적은 코드가 필요하므로 구현이 단순화되었습니다.
  • 일관성: 새 길이를 반환하는 것은 스플라이스 및 수정된 배열과 같이 배열 길이를 조작하는 다른 방법과 일치합니다. 옮기다. 보다 직관적이고 응집력 있는 인터페이스를 위해 이러한 일관성이 우선시되었을 수 있습니다.

대체 옵션

디자이너가 새로운 길이 반환을 선택하지 않았더라면, 다른 옵션 고려했을 수도 있습니다:

  • 새 항목 반환: 이렇게 하면 추가된 요소에 직접 액세스할 수 있으므로 개발자가 새 길이를 사용하여 수동으로 검색할 필요가 줄어듭니다.
  • 수정된 배열 반환: 푸시 작업으로 수정된 배열 자체를 반환하면 업데이트된 배열을 수집하기 위한 추가 단계가 필요하지 않을 수 있습니다.

결론

새로운 길이를 반환하는 Array.prototype.push의 구체적인 근거는 완전히 명확하지 않지만 Perl의 역사적 기원과 단순성과 일관성의 잠재적 이점이 Array.prototype.push에 영향을 미쳤을 수 있습니다. 구현. 이 디자인 결정은 개발자의 기대에 완벽하게 부합하지 않을 수 있지만 JavaScript에서 배열을 조작하기 위한 잘 정의되고 일관된 동작을 제공합니다.

위 내용은 Array.prototype.push가 추가된 항목이 아닌 길이를 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.