Array.prototype

현재 번역은 완벽하지 않습니다. 한국어로 문서 번역에 동참해주세요.

요약

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

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

if (!Array.prototype.first) {
  Array.prototype.first = function() {
    return this[0];
  }
}
Property attributes of Array.prototype
Writable no
Enumerable no
Configurable no

설명

Array 인스턴스는 Array.prototype을 상속받습니다. 모든 생성자와 마찬가지로 모든 Array 인스턴스를 변경하는 생성자의 프로토타입 객체를 변경할 수 있습니다. 예를 들어 모든 배열 객체를 확장하는 새로운 메서드와 속성을 추가할 수 있습니다. 예를 들어 polyfilling에 사용됩니다.

거의 알려지지 않은 사실: Array.prototype 자체는 Array이다:

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

속성

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.join()
배열의 모든 요소를 문자열로 변환하여 합칩니다.
Array.prototype.slice()
배열의 일부를 추출한 새 배열을 반환합니다.
Array.prototype.toSource()
지정한 배열을 나타내는 배열 리터럴을 반환합니다. 새로운 배열을 만들기 위해 이 값을 사용할 수 있습니다. Object.prototype.toSource() 메서드를 재정의합니다.
Array.prototype.toString()
배열과 요소를 반환하는 문자열을 반환합니다. Object.prototype.toString() 메서드를 재정의합니다..
Array.prototype.toLocaleString()
배열과 요소를 나타내는 지역화된 문자열을 반환합니다. Object.prototype.toLocaleString() 메서드를 재정의합니다.
Array.prototype.indexOf()
배열에서 지정한 값과 같은 요소의 첫 인덱스를 반환합니다. 없으면 -1을 반환합니다.
Array.prototype.lastIndexOf()
배열에서 지정한 값과 같은 요소의 마지막 인덱스를 반환합니다. 없으면 -1을 반환합니다.

반복 메서드

배열을 처리하는 동안 함수인자를 호출하는 몇몇 메서드가 있습니다. 이러한 메서드가 호출될 때 배열의 길이가 샘플링되고 그 이후에 콜백 내에서 추가된 요소에는 방문하지 않습니다. 만약 메서드가 요소가 바뀐 후에 방문한다면 배열의 변경(요소의 값 설정 또는 삭제)이 작업 결과에 영향을 줄 수도 있습니다. 이러한 경우의 구체적인 동작은 잘 정의되어있지만, 당신의 코드를 읽을 다른 사람들이 혼란스럽지 않게 해야 합니다. 만약 배열을 변경하려면 대신할 새로운 배열로 복사하십시오.

Array.prototype.forEach()
배열의 각각의 요소에 함수를 호출합니다.
Array.prototype.entries()
배열의 각 인덱스에 대한 키/값 쌍을 포함하는 새로운 배열 반복자 객체를 반환합니다.
Array.prototype.every()
만약 배열의 모든 요소가 제공된 검사 함수를 만족하면 true를 반환합니다.
Array.prototype.some()
Returns true if at least one element in this array satisfies the provided testing function.
Array.prototype.filter()
Creates a new array with all of the elements of this array for which the provided filtering function returns true.
Array.prototype.find()
Returns the found value in the array, if an element in the array satisfies the provided testing function or undefined if not found.
Array.prototype.findIndex()
Returns the found index in the array, if an element in the array satisfies the provided testing function or -1 if not found.
Array.prototype.keys()
Returns a new Array Iterator that contains the keys for each index in the array.
Array.prototype.map()
Creates a new array with the results of calling a provided function on every element in this array.
Array.prototype.reduce()
Apply a function against an accumulator and each value of the array (from left-to-right) as to reduce it to a single value.
Array.prototype.reduceRight()
Apply a function against an accumulator and each value of the array (from right-to-left) as to reduce it to a single value.
Array.prototype.values()
Returns a new Array Iterator object that contains the values for each index in the array.
Array.prototype[@@iterator]()
Returns a new Array Iterator object that contains the values for each index in the array.

Generic methods

Many methods on the JavaScript Array object are designed to be generally applied to all objects which “look like” Arrays. That is, they can be used on any object which has a length property, and which can usefully be accessed using numeric property names (as with array[5] indexing). TODO: give examples with Array.prototype.forEach.call, and adding the method to an object like JavaArray or String. Some methods, such as join, only read the length and numeric properties of the object they are called on. Others, like reverse, require that the object's numeric properties and length be mutable; these methods can therefore not be called on objects like String, which does not permit its length property or synthesized numeric properties to be set.

Specifications

Specification Status Comment
ECMAScript 1st Edition. Standard Initial definition.
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  

Browser compatibility

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support (Yes) (Yes) (Yes) (Yes) (Yes)
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support (Yes) (Yes) (Yes) (Yes) (Yes) (Yes)

See also

문서 태그 및 공헌자

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