배열 요소로 모든 자료형이 올 수 있다!
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"
위의 예시를 보면 배열 내에 있는 요소의 사이에만 쉼표가 삽입되어 출력된다는 것을 알 수 있다.