배열 요소로 모든 자료형이 올 수 있다!
let arr = [ '사과', { name: '이보라' }, true, function() { alert('안녕하세요.'); } ];
이런 형태도 가능
//1번 방법
let arr = new Array();
//2번 방법
let arr = [];
2번 방법이 가장 자주 쓰이고, 선언과 동시에 초기 요소를 넣어줄 수도 있다.
let kopi = ["승희", "은빈", "연서", "지민"];
let arr = new Array("숭", "혜","은", "연", "지");
let arr = new Array(5);
console.log(arr[1]);
//output -> undefined
console.log(arr.length);
//5
길이만 지정되고, 각 요소는 비어있기 때문에 출력을 할 경우 undefined
로 나온다.
배열[인덱스]
를 통해 배열의 특정 요소에 접근할 수 있다. console.log(kopi[0]);
// output : 승희
kopi[0] = "숭이";
-> ["숭이", "은빈", "연서", "지민"]
으로 바뀜
kopi[4] = "혜인";
-> ["숭이", "은빈", "연서", "지민", "혜인"]
으로 바뀜
console.log(kopi.length);
// output : 5
console.log(kopi);
// output : 숭이, 은빈, 연서, 지민, 혜인
trailing 쉼표
배열의 마지막 요소도 쉼표로 끝날 수 있다.
let kopi = ["승희", "지민", "은빈", "혜인", "연서",];
-> 배열의 요소를 추가하거나 삭제하기 용이하다.
Queue는 FIFO(First In First Out), Stack은 LIFO(Last In First Out)
arr.push("숭이");
arr[arr.length] = "숭이";
둘은 같은 역할을 수행하는 코드이다.
let kopi = ["숭이", "은빈", "연서", "혜인", "지민"];
kopi.shift();
console.log(kopi);
// output -> 은빈, 연서, 혜인, 지민
let kopi = ["숭이", "은빈", "연서", "지민"];
kopi.unshift("혜인");
console.log(kopi);
// output -> 혜인, 숭이, 은빈, 연서, 지민
push, unshift 연산은 한번에 여러개의 요소를 더해줄 수 있다.
arr.push(요소1, 요소2);
,arr.unshift(요소1, 요소2);
shift
, unshift
는 느리다 push
, pop
은 비교적 빠르다예를 들어, shift
연산을 할 경우,
이렇게 3단계의 연산을 필요로하기 때문에 나머지 요소를 이동시켜줄필요 없는 뒤에서 일어나는 연산보다 속도가 느릴 수 밖에 없다!
for
반복문을 많이 쓴다. for (let i=0; i<arr.length; i++)
를 사용해도 되지만, 다음의 순회 문법도 활용해보자 let kopi = ["숭", "혜","은", "지","연"];
for (let ko of kopi) {
console.log(ko);
}
위의 코드로 kopi
배열의 각 요소를 출력시킬 수 있다.
let kopi = ["숭", "혜", "은", "지", "연"];
for (let i in kopi) {
console.log(kopi[i]);
}
for of
와 달리, for in
을 썼을 때 순회되는 각 요소는 배열의 인덱스이다.
따라서 i는 직접적인 요소의 값을 담게 되지 않기 때문에 값에 접근하기 위해서는 대괄호를 사용해야 한다.
하지만
for in
은 문제를 일으킬 가능성도 있고, 속도도 매우 느리기 떄문에 객체가 아닌 배열을 순회할 땐 자제하는 것이 좋다
가장 큰 인덱스 + 1
값이 length!!!let kopi = [];
kopi[999] = "숭';
console.log(kopi.length);
// output -> 1000
💡 length property는 쓰기가 가능하다!!!!!!!!!
length보다 큰값으로 update하면 undefined요소가 그만큼 추가되고,
length보다 작은 값으로 update하면 기존 배열이 잘리게 된다.!!!!!!!!!!!!
let matrix = [
[1,2,3],
[4,5,6],
[7,8,9]
];
console.log(matrix[1][1]);
// output -> 5
toString
메서드가 내장되어있기 때문,
쉼표로 구분되어 나온다. let arr = [1,2,3];
console.log(arr);
// output -> 1,2,3
alert( [] + 1 ); // "1"
alert( [1] + 1 ); // "11"
alert( [1,2] + 1 ); // "1,21"
위의 예시를 보면 배열 내에 있는 요소의 사이에만 쉼표가 삽입되어 출력된다는 것을 알 수 있다.