위치 (또는 0) 인덱스를 사용하면 값이 배열 내에 배치됩니다.
var array = [];
array[0] = "Foo";
array[1] = "Bar";
인덱스가 아닌 값 (0-9 + 아님)을 추가하는 경우에는 해당되지 않습니다.
var array = [];
array[0] = "Foo";
array[1] = "Bar";
array[-1] = "Fizzbuzz";
값은 규칙에 따라 플레이 할 때만 배열에 배치됩니다. 그렇지 않으면 수락되지 않습니다. 그러나 JavaScript의 거의 모든 경우에 해당하는 Array 객체 자체에서 허용됩니다. ["Foo", "Bar"]배열에있는 유일한 값 이지만 여전히 액세스 할 수 있습니다 "Fizzbuzz".
array[-1];
그러나 "인덱스"가 유효하지 않기 때문에 이것은 배열 값의 일부가 아닙니다. 대신 다른 구성원으로 배열에 추가되었습니다. 동일한 방식으로 다른 배열 구성원에 액세스 할 수 있습니다.
array["pop"];
여기서 우리는 pop배열 의 메서드에 액세스하고 있으며 이는 여기에 네이티브 코드가 포함되어 있음을 알려줍니다. "pop"키를 사용하여 배열 값에 액세스하는 것이 아니라 배열 개체 자체의 구성원에 액세스합니다. 객체의 공개 멤버를 순환하여 추가로 확인할 수 있습니다.
for (var prop in array)
console.log(prop, array[prop]);
다음을 뱉어냅니다.
0 Foo
1 Bar
-1 Fizzbuzz
그래서 다시, 그건 에 객체 있지만, 그렇지 않다 에서 배열 .
멋진 질문입니다! 확실히 더블 테이크를하게 만들었습니다.