유명한 담벼락

Javascript : 객체와 배열의 반복문(for..in 반복문과 for..of 반복문의 차이)

by 담담이담

 

 

1. 객체의 for..in 반복문

 

 

 

 

for (변수 in 객체){
  동작부분 
}

이런 식으로 작성하면 

변수에 객체의 Property Name이 할당된다. 

 

 

for (let i in ewha){
  console.log(i)
}


for (let i in ewha){
  console.log(ewha[i])
}



// 결과값 
name
bornYear
isVeryNice
worstThing

이화여자대학교
1886
true
null

 

대괄호 표기법을 이용해서 위처럼 Property Value에도 접근할 수 있다.

 

 


2. 배열의 for..of 반복문

 

사실 굳이 for..of 반복문을 사용하지 않아도,

배열의 length property를 이용해서 배열의 각 요소를 다룰 수 있다.

 

 

하지만 for..of를 사용하면 더욱 간단하게 활용할 수 있다.

구조는 다음과 같다.

 

for (변수 of 배열){
  동작부분;
}

 

for..in문과의 차이점?

for..in문은 변수에 객체의 Property Name이 할당 됐지만,

for..of문은 변수에 배열의 요소 하나하나가 할당된다.

 

let family = ['엄마', '아빠', '오빠', '나'];

for (let i of family){
  console.log(i)
}




// 결과값
엄마
아빠
오빠
나

 

 

Question?

근데 배열도 객체라며?

그럼 그냥 배열에서도

for..in문 사용해도 되는 거 아니야?

 

let family = ['엄마', '아빠', '오빠', '나'];

for (let i in family){
  console.log(family[i])
}




// 결과값
엄마
아빠
오빠
나

 

for..in 문에서는 변수 자리에 Property Name이 들어가기에

배열의 경우 인덱스가 Property Name이 된다.

 

이런 방식으로 for..in문을 이용해 각 요소들을 얻을 수도 있지만, 

for..in문은 모든 Property들을 기준으로 동작하기에

인덱스 Property 뿐만 아니라 다른 Property들도 변수에 할당될 가능성이 있다.

 

 

결론

for..in문은 일반적인 객체에 최적화되어있기에

배열에서는 사용하지 않는 걸 추천한다.

블로그의 정보

유명한 담벼락

담담이담

활동하기