for - in 배열/객체

갈 길 이 먼·2021년 8월 20일
0

나는 여태 for - of는 배열에, for - in은 객체에 사용한다 라고 외웠다. 그러나 오늘 for - in문이 배열과 객체에 모두 사용되기위해 고안되었다는 정보를 접했다. (thanks to Wecode) 신선한 충격이다. 😁

for - in은 객체를 순회하기 위해 고안된 것이 맞다. 객체를 순회하려면 뭘 기준으로 순회할까? (당연히) key로 순회하면 될 것이다. 배열의 자료형은 (typeof 걸면 나오는) 객체인데, 배열에서 key에 해당하는 데이터는 뭘까? 그래 맞다. 인덱스다. 그래서 for - in을 배열에 사용하면 인덱스를 조회한다.

배열에 for문을 돌린 것과 for - in을 사용하는 것의 차이를 한 번 확인해보자.

무슨 차이가 있어? 싶겠지만 눈치 빠른 사람들은 알았을 것이다. 그냥 포문을 사용면 인덱스값(i)이 숫자 그대로 출력된다. 하지만 for - in으로 돌리면 인덱스값(i)은 문자열로 된 숫자로 출력된다. 왜 그럴까?

우리는 이제 다들 알고 있을 것이다. 객체의 키값은 따옴표나 백틱처리 없이 자동으로 문자열로 취급된다는 것을. (물론 변수명에 할당할 수 없는 특수한 문자열은 따옴표가 필요하다) 객체를 가지고 for-in 문을 사용하면, for-in 문의 인덱스에 해당하는 변수가, 숫자가 아닌 객체의 각각의 키에 해당하는 문자열을 할당받게 된다. 그러므로 배열에 for -in을 돌리면 배열의 인덱스를 키로 생각하여 그 키에 해당하는 문자열을 할당해주는 것이다.

앞으로 인덱스를 조회할 필요가 있을 때 배열에서도 for - in을 사용해볼 수 있을 것 같다. 😘

profile
개발자로의 여정

0개의 댓글