이 번역은 완료되지 않았습니다. 이 문서를 번역해 주세요.

Array.prototype 속성은 Array 생성자를 위한 프로토타입을 나타내며, 모든 Array 객체에 새로운 속성과 메서드를 추가할 수 있습니다.

// 자바스크립트가 first() 메서드를 기본적으로 제공하지 않는다면
// 배열의 첫 번째 요소를 반환하는 새로운 메서드를 추가합니다.

if (!Array.prototype.first) {
  Array.prototype.first = function() {
    return this[0];
  }
}

설명

Array 인스턴스는 Array.prototype을 상속받습니다. 다른 모든 생성자처럼, 생성자의 프로토타입을 변경해 모든Array 인스턴스를 일괄적으로 바꿀 수 있습니다. 예컨대 모든 Array  객체에 새로운 속성과 메서드를 추가할 수 있습니다. 폴리필은 이런 점을 이용합니다.

거의 알려지지 않은 사실: Array.prototype은 스스로가 Array입니다.

Array.isArray(Array.prototype); // true

Property attributes of Array.prototype
Writable no
Enumerable no
Configurable no

속성

Array.prototype.constructor
객체의 프로토타입을 생성하는 함수를 지정합니다.
Array.prototype.length
배열의 원소 수를 나타냅니다.
Array.prototype[@@unscopables]
with 결속 범위로부터 제외하려는 속성 이름이 들어있는 기호입니다.

메서드

변경자 메서드

변경자 메서드는 배열을 수정합니다:

Array.prototype.copyWithin()
배열 내의 지정된 요소들을 동일한 배열 내에서 복사합니다.
Array.prototype.fill()
배열 안의 시작 인덱스부터 끝 인덱스까지의 요소값을 지정된 정적 값으로 채웁니다.
Array.prototype.pop()
배열에서 마지막 요소를 뽑아내고, 그 요소를 반환합니다.
Array.prototype.push()
배열의 끝에 하나 이상의 요소를 추가하고, 변경된 배열의 길이를 반환합니다.
Array.prototype.reverse()
배열의 요소 순서를 반전시킵니다. - 첫 번째가 마지막이 되고 마지막이 첫 번째가 됩니다.
Array.prototype.shift()
배열에서 첫 번째 요소를 삭제하고 그 요소를 반환합니다.
Array.prototype.sort()
배열의 요소를 정렬하고 그 배열을 반환합니다.
Array.prototype.splice()
배열에서 요소를 추가/삭제합니다.
Array.prototype.unshift()
배열의 앞에 하나 이상의 요소를 추가하고 새로운 길이를 반환합니다.

접근자 메서드

접근자 메서드는 배열을 수정하지 않고 배열 일부를 반환합니다.

Array.prototype.concat()
배열과, 인자로 주어진 배열/값을 결합해 새로운 배열을 만들고, 이 새 배열을 반환합니다.
Array.prototype.includes()
배열에 특정 요소가 포함돼있는지 알아내어 true 또는 false를 적절히 반환합니다.
Array.prototype.indexOf()
배열에서 지정한 값과 같은 요소의 첫 인덱스를 반환합니다. 없으면 -1을 반환합니다.
Array.prototype.join()
배열의 모든 요소를 문자열로 변환하여 합칩니다.
Array.prototype.lastIndexOf()
배열에서 지정한 값과 같은 요소의 마지막 인덱스를 반환합니다. 없으면 -1을 반환합니다.
Array.prototype.slice()
배열의 일부를 추출한 새 배열을 반환합니다.
Array.prototype.toSource()
지정한 배열을 나타내는 배열 리터럴을 반환합니다.새로운 배열을 만들기 위해 이 값을 사용할 수 있습니다.
Array.prototype.toString()
배열과 요소를 반환하는 문자열을 반환합니다. Object.prototype.toString() 메서드를 재정의합니다.
Array.prototype.toLocaleString()
배열과 요소를 나타내는 지역화된 문자열을 반환합니다. Object.prototype.toLocaleString() 메서드를 재정의합니다.
 

순회 메서드

배열을 처리하는 동안, 각각의 배열요소에 대해 (인자로 주어진) 콜백 함수를 호출하는 메서드가 몇 개 있습니다. 이러한 메서드들은 메서드의 호출시점에 배열의 길이를 확인한 후, 그 길이까지의 배열요소에 대해서만 콜백을 수행하며,  콜백 중에 추가된 배열 요소(메서드 호출시점에 확인된 길이보다 더 큰 인덱스값을 갖는 요소들)에 대해서는 콜백을 수행하지 않습니다. 만약 메서드의 실행 도중에  배열의 변경(요소의 값 설정 또는 배열요소를 삭제하는 등)이 발생하고, 이런 변경이후에 메서드가 해당 배열 요소에 대해 콜백을 호출하게 되면  작업 결과에 영향을 줄 수도 있습니다. 이러한 사례들에 있어 메서드들의 구체적인 동작은 잘 정의되어 있지만, 당신의 코드를 읽을 다른 사람들이 혼란스럽지 않게 해야 합니다. 만약 이런 메서드를 이용해 배열을 변경해야한다면, 원본 배열 대신 새로운 배열로 값을 복사하는 방식으로 처리하십시오.

Array.prototype.entries()
배열의 각 인덱스에 대한 키/값 쌍을 포함하는 새로운 배열 반복자 객체를 반환합니다.
Array.prototype.every()
만약 배열의 모든 요소가 제공된 검사 함수를 만족하면 true를 반환합니다.
Array.prototype.filter()
주어진 필터링 함수의 값의 결과가 참인 경우의 배열 요소들만으로 새로운 배열을 생성하여 반환합니다
Array.prototype.find()
주어진 테스팅 함수의 요구조건을 만족하는 배열 요소를 반환합니다. 그러한 배열요 요소가 없으면  undefined를 반환합니다.
Array.prototype.findIndex()
주어진 테스트 함수를 만족하는 배열의 첫 번째 요소에 대한 인덱스를 반환합니다. 그렇지 않으면 -1이 리턴됩니다.
Array.prototype.forEach()
배열의 각각의 요소에 함수를 호출합니다.
Array.prototype.keys()
배열의 각 인덱스에 대한 key들을 가지는 새로운 Array Iterator 객체를 반환합니다.
Array.prototype.map()
배열 내의 모든 요소 각각에 대하여  제공된 함수(callback)를 호출하고, 그 결과를 모아서  만든 새로운 배열을 반환합니다.
Array.prototype.reduce()
배열의 각 값에 대해 왼쪽에서 오른쪽으로 함수를 적용하여 단일 값으로 줄입니다.
Array.prototype.reduceRight()
배열의 각 값에 대해 오른쪽에서 왼쪽으로 함수를 적용하여 단일 값으로 줄입니다.
Array.prototype.some()
R배열중의 적어도 한 요소가 테스팅 함수를 만족시킨 다면 true를 반환합니다.
Array.prototype.values()
배열의 요소값들에 대한 Array Iterator 객체를 반환합니다.
Array.prototype[@@iterator]()
배열의 요소값들에 대한 Array Iterator 객체를 반환합니다.

제네릭 메서드 (비표준)

M자바스크립트 배열 객체의 많은 메서드들은 일반적으로 "배열같은" 모든 객체에 적용되도록 설계되었습니다.  즉, length 속성을 가지고 있으며 동시에 숫자로 된 속성이름(array[5] 같은 형식)을 사용가능한 객체에 대해서 이 메서드들을 사용할 수 있다는 의미입니다.  join같은 일부의 메서드들은 length 값과 숫자값으로 된 속성값을 단지 읽어서 사용할 수 있으면 됩니다.  하지만 reverse같은 메서드들은 객체의 숫자값 속성과 length값이 변경가능(mutable)해야합니다; 때문에 이런 메서드들은 String같이 length 속성값이나 숫자속성값을 변경할 수 없는 객체들에 대해서는 호출될 수 없습니다.

명세

Specification Status Comment
ECMAScript 1st Edition (ECMA-262) Standard 초기 정의.
ECMAScript 5.1 (ECMA-262)
The definition of 'Array.prototype' in that specification.
Standard  
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Array.prototype' in that specification.
Standard copyWithin(), fill(), entries(), keys(), values(), find(), findIndex() 메서드 추가.
ECMAScript 2016 (ECMA-262)
The definition of 'Array.prototype' in that specification.
Standard includes() 메서드 추가.

브라우저 호환성

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidiOS SafariSamsung InternetNode.js
Basic supportChrome Full support YesEdge Full support YesFirefox Full support 1IE Full support YesOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 4Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yesnodejs Full support Yes

Legend

Full support  
Full support

 

See also

문서 태그 및 공헌자

이 페이지의 공헌자: urty5656, limkukhyun, sominlee, HanuLatte, teoli
최종 변경자: urty5656,