경험이 풍부한 개발자라면 이 질문이 비교적 간단하다고 생각할 수도 있지만 때로는 이 질문이 더 흥미로울 때도 있습니다.
먼저 배열의 정의를 살펴보겠습니다. “배열은 정수를 “키”로 사용하여 액세스할 수 있는 값의 목록일 뿐입니다. 목록은 0부터 시작합니다. 아래에서는 객체를 사용하여 배열의 정의를 설명합니다.
위의 예를 보면 항상 뭔가 빠진 느낌이 듭니다. 배열의 길이입니다.
우리는 Javascript 언어에서 배열이 특별한 객체라는 것을 알고 있습니다. 배열에 액세스하는 방법을 사용하여 객체의 속성에 액세스하는 동시에 배열도 객체와 같은 속성을 추가할 수 있습니다. 다음 예를 살펴보세요.
var arr = ["벤자민", "zuojj"];
arr.url = "www.jb51.net";
//출력: "www.jb51.net"
console.log(arr.url);
//출력: 2
console.log(arr.length);
배열의 메소드를 살펴보겠습니다. 배열에는 indexOf/slice/splice/sort 등 작동 가능한 메소드가 많이 있습니다. 이러한 메소드가 실제로 Array.prototype에 존재한다는 것을 알고 있습니다. 아래 예를 살펴보세요.
실제로 객체를 사용하면 모든 배열 메서드를 오버로드할 수 있습니다. 아래의 푸시 방법 예를 참조하세요.
하지만 다시 구현할 수 없는 것이 하나 있는데, 바로 배열의 문자 그대로 정의입니다.
그러나 생성자를 대신 사용할 수 있습니다:
배열의 리터럴 정의가 적용되지 않으면 우리는 우리 자신의 방식으로 배열의 정의를 재정의할 수 있습니다.
이제 JavaScript에서 배열이 어떻게 작동하는지 알았으니 이것이 모든 사람에게 도움이 되기를 바랍니다.