본문 바로가기

Language/Java Script

자바스크립트 배열

자바스크립트 배열의 경우는 값을 순차적으로 넣을 필요 없이 아무 인덱스 위치에나 값을 동적으로 추가할 수 있다.

 

length 변수 주의사항

1. 자바스크립트 배열의 length 함수는 배열의 크기가 아니라 배열 내 가장 큰 인덱스에 1을 더한 값이다.

2. length를 더큰값으로 수정하면 undefined 값이 들어가고 length를 줄이면 벗어난 인덱스 값이 삭제된다.

3. push() 메서드는 length 프로퍼티 기준으로 동작한다.

 

배열과 객체의 차이점

★ 프로토타입이 서로 다르다.

  - 배열 : Array.prototype → Object.prototype

  - 객체 : Object.prototype

    · length 프로퍼티가 존재하지 않음

    · push 함수가 존재하지 않음

☆ 유사 배열 객체

  - length 프로퍼티를 가진 객체

  - apply() 메서드로 표준 배열 메서드를 사용하는 것이 가능하다.

    · Arrays.prototype.push.apply(obj, ['bar']);

 - arigument 객체나 jQuery 객체가 유사 배열 객체로 되어있다.

 

 

배열에 arr.color 등의 프로퍼티를 추가해도 length는 변경되지 않는다.

배열에 delete 함수를 사용하면 해당 요소를 undefined로 설정하지만 원소자체를 삭제하지 않는다(length는 변화없다)

배열에서 요소들을 완전히 삭제할 경우 splice() 배열 메서드를 사용한다.

  - splice(startIndex, deleteCount, addItem...)

생성자 함수로 생성 가능하다. 사용방식에 차이가 있다.

  - new Array(3) : length가 3인 undefined 배열

  - new Array(1, 2, 3) : 요소가 1, 2, 3을 포함한 배열