제어문¶
반복문¶
for 문¶
for
문 괄호 안에서 처음에 나오는 초기화 부분에서 선언된 변수는 블록문에서 정의되는 것이 아니다. 왜냐면 다음과 같은 코드에서 만일 괄호 안에서 선언된 i
가 같은 블록문 안에서 선언된 것이라면 블록문 안에서 선언된 i
와 중복이 되어 에러가 발생할 것이지만 실행하면 에러가 안난다.
for (let i = 0; i < 5; i++) {
let i = 10;
console.log(i);
}
위의 것은 아마도 다음과 같이 작동하는 것 같다. 즉, for
괄호 안에 정의되는 변수는 바깥 블록에서 정의되는 것이고 for
블록은 안쪽 블록으로 해석할 수 있을 것 같다. 즉, 다음과 같이 쓸 수 있지 않을까 생각된다.
{ // 이 블록이 for 괄호 안에서 정의되는 부분이다.
let i = 0;
{ // 이 블록이 for 괄호 다음에 나오는 블록이다.
let i = 10;
console.log(i);
}
}
for (let i = 0; i < 3; i++) {
console.log(i);
}
for … in 문¶
for ... in
문은 객체의 프로퍼티에 대해서 루프를 실행한다.
for (변수 in 객체) {
구문;
}
위에서 변수는 객체의 프로퍼티를 하나씩 순회하게 된다.
const player = {name: "David", age: 27, rank: "Middle"};
for (let prop in player) {
if (!player.hasOwnProperty(prop))
continue;
console.log(prop + ":" + player[prop]);
}
for … of 문¶
for ... of
문은 ES6에서 생긴 반복문으로 배열은 물론 이터러블(iterable) 객체에 모두 사용할 수 있다.
배열을 예로 들면 다음과 같다.
const hand = ['Diamond', 'Gold', 'Silver'];
for (const stone of hand) {
console.log(`You kicked ...${stone}`);
}