
127
5.4 반복문
을 추가한다면, 절대 배열의 마지막 요소에 도달할 수 없으므로 무한 루프가 만들
어집니다.
for/of
객체는 (기본적으로) 이터러블이 아닙니다. 일반적인 객체에
for
/
of
를 사용하려 하
면 런타임에
TypeError
가 일어납니다.
let o
=
{ x: 1, y: 2, z: 3 };
for(let element of o) { // o
는
이터러블이
아니므로
TypeError
가
일어납니다
.
console.log(element);
}
객체의 프로퍼티를 순회하고 싶다면 5.4.5절에서 소개할
for
/
in
루프를 사용하거
나,
Object.keys()
메서드에
for
/
of
를 사용해야 합니다.
let o
=
{ x: 1, y: 2, z: 3 };
let keys
=
"";
for(let k of Object.keys(o)) {
keys +
=
k;
}
keys //
=
> "xyz"
Object.keys()
는 객체의 프로퍼티 이름으로 이루어진 배열을 반환하며 배열은
for
/
of
를 사용할 수 있는 이터러블입니다. 이렇게 객체의 키를 순회하는 것은 동
적이지 않습니다. 루프 바디 안에서 객체
o
를 변경해도 결과가 달라지지 않습니다.
객체의 키가 필요하지 않다면 다음과 같이 값을 순회할 수도 있습니다.
let sum
=
0; ...