배열(Array)
1 var array = [];
2 var array2 = [1, "Hello", [1,2,3], { hi: 1 }];
배열은 [ ]로 감싸서 나타내고, 객체 리터럴처럼 안에는 무엇이든지 다 들어갈 수 있습니다. 배열 안에 배열이 들어가도 되고, 배열 안에 객체가 들어가도 됩니다. 아직 안 배웠지만 함수도 들어갈 수 있습니다. 배열 안에 들어간 것들을 우리는 요소(item)이라고 부릅니다. 객체의 속성처럼 쉼표로 구분하면 됩니다.
다른 프로그래밍 언어를 배우셨던 분들을 위해 한 가지 알려드리자면, 자바스크립트는 배열의 길이를 미리 정할 필요가 없습니다. 안의 요소에 따라 자동으로 늘어나거나 줄어듭니다.
객체와의 차이점은 키가 없다는 거죠. 그냥 값들만 순서대로 나열되어 있습니다. 아까 zero 객체를 생각해보세요. 거기서 키만 없으면,
1 var zero = ['Minji', 'Kim'];
이런 모양이 되는 겁니다. 굳이 키가 필요하지 않고 값만 많이 나열하고 싶을 때 배열을 사용합니다.
배열 안의 요소를 선택하려면 뒤에 몇 번째 요소인지 숫자를 붙여주면 됩니다. 자바스크립트에서는 0이 첫 번째입니다. 따라서 [0]을 붙이면 첫 번째 요소 Minji가 선택되고, [1]을 붙이면 두 번째 요소 Kim가 선택됩니다.
1 minji[0]; // 'Minji'
2 minji[1]; // 'Kim'
사실 배열도 키가 있습니다. 한 문단만에 말이 바뀌어서 죄송합니다. 배열은 자동으로 키가 0, 1, 2, 3, ... 순서로 주어집니다. 즉 'Minji' 값의 키는 0이고, 'Kim' 값의 키는 1입니다. 위에서 요소를 선택한 원리가 바로 이거죠. 키를 통해 배열의 요소를 선택한 겁니다.
1 minji['firstName']; // 'Minji'
아까 객체는 [ ]안에 속성 이름을 넣어서 값을 불러오는 방법도 있었죠? 그와 비슷합니다. 어떻게보면
1 var array = ['hi', 'js', 123];
2 var object = {
3 0: 'hi',
4 1: 'js',
5 2: 123
6 };
위의 두 개가 비슷하다고 볼 수도 있습니다. 다만, 배열은 객체보다 몇 가지 추가적인 기능들을 제공합니다. 그 기능은 배열 강좌에서 알려드리겠습니다. 또한 배열이 아닌 일반 객체도 배열과는 다른 기능들이 몇 개 있습니다.
배열도 역시 다음과 같이 만들 수도 있습니다.
1 var array = new Array();
2 array[0] = 1;
3 array[1] = 'Hello';
하지만 위와 같은 방법보다는 그냥 [ ] 안에 넣는 것을 자주 사용합니다. 그리고 [ ]를 사용하는 게 권장사항이기도 합니다. new를 사용하지 않고 [ ]만 사용해서 만든 배열을 배열 리터럴이라고 부릅니다. 객체 리터럴 같은 겁니다.
객체와 배열은 특성상 대부분의 프로그래밍 언어에 있습니다. 이들은 나중에 배울 자료구조와 알고리즘의 기본이기도 합니다.
마지막 객체로는 함수가 있습니다. 함수는 객체나 배열보다 더 중요하기 때문에 다음에 다시 설명합니다.