let emptyArr = [];
console.log(emptyArr[0]) //undefined
emptyArr[0] = 200;
emptyArr[4] = 'apple';
emptyArr[10] = 'ten';
console.log(emptyArr);
emptyArr에 세 개의 값만 할당했지만 console.log(emptyArr)의 결과는 11개의 배열 요소 값이 출력된다. 그 이유는 자바스크립트가 배열의 크기를 현재 배열 인덱스 중 가장 큰 값을 기준으로 정하기 때문이다.
length
프로퍼티는 배열 내에서 가장 큰 인덱스 값에 1을 더한 값이다.
emptyArr[100] = 100;
console.log(emptyArr); // 101
emptyArr.length = 50;
console.log(emptyArr.length); // 50
emptyArr.length = 5;
console.log(emptyArr.length); // 5
conso.log(empyArr);
length 프로퍼티를 변경했을 때, 프로퍼티 값을 벗어나는 요소는 삭제된다.
push
메서드는 인수로 넘어온 항목을 배열의 맨 끝에 추가하는 자바스크립트 표준 배열 메서드이다. push 메서드는 현재 배열의 length 값 위치에 새로운 원소값을 추가한다.
let arr =['a','b','c']'
arr.push('d');
console.log(arr); //['a','b','c','d']
arr.length = 5;
arr.push('e');
console.log(arr); //['a','b','c','d',undefined,'e']
arr 배열의 length를 5로 바꾸고 push 메서드를 실행하면 arr[5]에 값이 추가되는 것을 알 수 있다.
이를 통해 배열 메서드가 length 프로퍼티를 기반으로 동작하고 있다는 것을 알 수 있다.