본문 바로가기

Dev.FrontEnd/JavaScript

9. 자바스크립트의 내장 객체 - 배열 ( Array )

Chapter 9. 내장 객체로서의 배열


배열 객체
객체는 여러 개의 멤버로 구성되지만 이러한 구성 값은 정렬되지 않는다.
객체를 구성하는 멤버에는 고유한 이름이 부여되어 있는데,
특정 값에 접근하려면 이름으로 접근할 수 있다.

하지만 자바스크립트에도 넘버링되어 순차적으로 구성되어있는 객체가 존재한다.
이 경우에는 해당 값의 인덱스를 이용할 수 있다.
이 객체를 배열(array)라고 한다.

배열의 요소로는 다른 배열 객체에 대한 참조 변수, 객체, 함수 등
어떤 데이터 타입의 값도 포함될 수 있다.

var ar = new Array( );
var ar = { };
후자의 방법인 객체 리터럴을 통해 배열 생성하기를 권장한다.

Array 도 Object처럼 자바스크립트에서 미리 만들어 놓은 배열 객체의 생성자이다.
요소에 값을 할당할 경우, 인덱스에 해당하는 요소가 존재하지 않으면
해당 인덱스의 요소를 추가한다.
즉, 배열의 크기가 자동으로 증가하는 것이다.

배열을 생성하면서 배열의 크기를 인자로 전달할 수 있다.
딱히 의미는 없는게,
3크기를 지정해서 생성하고 4번째 요소를 추가하면 바로 증가되어 추가된다.
그리고 아직 값이 지정되지 않은 1,2,3번째 요소들에는 undefined 로 초기화된다.

객체 리터럴처럼 배열의 경우도 생성하고 초기화할 수 있는 배열 리터럴 구문이 존재한다.
var ar = [1, “Hello”, true, {a:1, b:2} ];
리터럴 구문을 사용할 때는 , , 사이를 비워두면 undefined로 초기화된다.


배열 객체도 객체로서 Object의 프로토타입 멤버를 상속받는다.
그리고 인스턴스처럼 인스턴스 멤버를 관리하는 영역을 갖고 있다.

배열 요소에서 값을 읽을 때는 [ ] 를 사용하고,
객체의 멤버의 값을 읽을 때는 . 을 사용하면 된다.

Array 프로토타입 객체에도 배열 객체를 다루는 데 편리한 멤버가 기본적으로 정의되어 있다.
ar.constructor  Array 객체 ar을 생성한 함수에 대한 참조
ar.length  배열의 요소 개수를 반환한다.

for-in iteration
1
2
3
4
var obj = {“prop1”:”value1”, “prop2”: 20};
for(var name in obj){
     console.log(name, ‘=‘, obj[name]);
cs




- The End -