학습내용
배열
pop
/push
와shift
/unshift
- 반복문
[대괄호]
로 접근 및 제어
객체에 해당
객체에는 속성(데이터 타입)과 메서드(함수)가 항상 존재한다.
length
속성
let test = [];
test[200] = 3;
>
console.log(test.length); // 201
배열의 길이는 201이지만 배열의 요소 갯수는 1개(3
)이다. length
속성은 배열의 최대 인덱스에서 +1한 값을 의미할 뿐, 실제 배열 안에 들어있는 요소의 갯수와는 상관이 없다.
배열 요소에 모든 데이터 타입 가능
let test = [
1,
'cinephile',
function(){
return 'cinephile'
},
[4,1,2]
];
다른 언어의 배열은 요소의 데이터 타입이 통일되어야만 하지만, 자바스크립트는 서로 다른 데이터 타입도 가능하다.
push()
배열의 마지막 요소 추가
let array = [1,2,3];
console.log(array); // [1,2,3]
array.push(4);
console.log(array); // [1,2,3,4]
pop()
배열의 마지막 요소 제거
let array = [1,2,3];
array.pop();
console.log(array); // [1,2]
마지막으로 추가한 데이터가 가장 먼저 제거되는 stack의 구조와 일치
unshift()
배열의 첫 번째 요소 추가
let array = [1,2,3];
array.unshift(0);
console.log(array); // [0,1,2,3]
shift()
배열의 첫 번째 요소 제거
let array = [1,2,3];
array.shift();
console.log(array); // [2,3]
제거된 요소가 영구적으로 사라지는 것은 아니며 필요한 경우 사용 가능
가장 먼저 추가한 데이터가 가장 늦게 제거되는 que의 구조와 일치
추가/제거 될 때마다 인덱스를 재배열 해야하기 때문에 사용을 권장하지 않음
배열의 속성(
length
)은 반복문에 최적화 되어있다.
기본형
let testArr = ['봄','여름','가을','겨울']
for(let i = 0; i < testArr.length; i++){
console.log(i) // 0 1 2 3
console.log(testArr[i]); // 봄 여름 가을 겨울
}
for ~ in
문
for(i in testArr){
console.log(i); // 0 1 2 3
console.log(testArr[i]) // 봄 여름 가을 겨울
}
기본적으로 in
앞에 오는 요소가 key를 반환한다. 기본형처럼 배열[key]
형식에서는 value를 반환한다.
💡 배열은 객체에 해당되기 때문에 자동으로
key(=index)
값이 부여된다.
for ~ of
문for(i of testArr){
console.log(i); // 봄 여름 가을 겨울
of
앞에 오는 요소가 value를 반환한다.기초가 버거운 편은 아니기에 후발대반을 신청해놓고도 괜히 한 건 아닐까, 이 시간에 심화를 더 열심히 해야하지 않을까 고민했었는데 결론부터 말하면 매우 탁월한 결정이었다. 기초적인 로직 정도는 스스로 구현할 수 있지만 그렇다고 기초를 마스터 한 것은 아니었기에 신청한 거였는데 나의 목적에 딱 부합하는 강의였다. 특히 for ~in
문과 for ~of
문은 매번 헷갈려서 반복문을 사용할 때마다 검색해보고 썼었는데 이번 기회에 확실히 알게 되었다. 또 push
/pop
, shift
,unshfit
역시 심화에서 배운 stack/que와 개념을 연결시킬 수 있어서 유익했다. 심화도 중요하지만 기초를 단단히 쌓지 않으면 심화 과정을 제대로 이해할 수 없을 거라고 생각하기에 조금 느리더라도 개념을 탄탄하게 정립해 나갈 생각이다.