>  기사  >  웹 프론트엔드  >  자바스크립트 배열_기본 지식에 대한 자세한 설명

자바스크립트 배열_기본 지식에 대한 자세한 설명

WBOY
WBOY원래의
2016-05-16 16:33:101540검색

경험이 풍부한 개발자라면 이 질문이 비교적 간단하다고 생각할 수도 있지만 때로는 이 질문이 더 흥미로울 때도 있습니다.

먼저 배열의 정의를 살펴보겠습니다. “배열은 정수를 “키”로 사용하여 액세스할 수 있는 값의 목록일 뿐입니다. 목록은 0부터 시작합니다. 아래에서는 객체를 사용하여 배열의 정의를 설명합니다.

코드 복사 코드는 다음과 같습니다.

var arr = ["벤자민", "zuojj"];
//=>
var arr = {
"0": "벤자민",
"1": "zuojj"
};

위의 예를 보면 항상 뭔가 빠진 느낌이 듭니다. 배열의 길이입니다.

코드 복사 코드는 다음과 같습니다.

var arr = {
"0" : "벤자민",
"1" : "zuojj",
"길이": 2
};

우리는 Javascript 언어에서 배열이 특별한 객체라는 것을 알고 있습니다. 배열에 액세스하는 방법을 사용하여 객체의 속성에 액세스하는 동시에 배열도 객체와 같은 속성을 추가할 수 있습니다. 다음 예를 살펴보세요.

코드 복사 코드는 다음과 같습니다.

var arr = {
"0" : "벤자민",
"1" : "zuojj",
"길이": 2
};
//출력: "벤자민"
console.log(arr[0]);
//출력: 2
console.log(arr.length);

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에 존재한다는 것을 알고 있습니다. 아래 예를 살펴보세요.

코드 복사 코드는 다음과 같습니다.

var arr = ["벤자민", "zuojj"];
//출력: 1
console.log(arr.indexOf("zuojj"));
arr.indexOf = 함수(str) {
Return "맞춤형 indexOf입니다!";
}
//출력: "맞춤형 indexOf입니다!"
console.log(arr.indexOf("zuojj"));

실제로 객체를 사용하면 모든 배열 메서드를 오버로드할 수 있습니다. 아래의 푸시 방법 예를 참조하세요.

코드 복사 코드는 다음과 같습니다.

var arr = {
길이: 0,
푸시: 함수(val) {
//과제
이것[this.length] = val;
//배열 길이 업데이트
This.length = 1;
​​​​ //배열의 길이를 반환
          this.length를 반환하세요.
}
}
arr.push("zuojj");
arr.push("벤자민");
//객체 {0: "zuojj", 1: "benjamin", 길이: 2, 푸시: 함수}
console.log(arr);

하지만 다시 구현할 수 없는 것이 하나 있는데, 바로 배열의 문자 그대로 정의입니다.

코드 복사 코드는 다음과 같습니다.
var arr = ["benjamin", "zuojj"] ;

그러나 생성자를 대신 사용할 수 있습니다:

코드 복사 코드는 다음과 같습니다.
var arr = new Array("benjamin", "zuojj ");

배열의 리터럴 정의가 적용되지 않으면 우리는 우리 자신의 방식으로 배열의 정의를 재정의할 수 있습니다.

코드 복사 코드는 다음과 같습니다.
var myArr = new CustomArray("benjamin", "zuojj ");

이제 JavaScript에서 배열이 어떻게 작동하는지 알았으니 이것이 모든 사람에게 도움이 되기를 바랍니다.

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