본문 바로가기

programming/javascript

[ES6] for ~ of문

for of 문


let numbers = [1, 2, 3, 4, 5];

for(let i of numbers){
console.log(i); // 1 2 3 4 5
} 


이처럼 ES6에는 반복을 쉽게하기 위한 일반 for문 말고도 for~of 문이 있다. 기존에 있던 for~in문과 별다른 차이는 없지만, for of 문은 배열을 다룰 때 적합하다. for~in 문에는 다음과 같은 문제점이 있다.


let numbers = [1, 2, 3, 4, 5];


for(let i in numbers){
console.log(i); // "0" "1" "2" "3" "4"


문자가 되어 나온다. 그렇기에 for~in문은 객체를 순회하면서 값을 조회하는데 편하고, for~of문은 배열에 적합하다. (* for~in문으로 객체의 key를 꺼내더라도 있는 순서 그대로 나오지는 않는다. 자바스크립트 나름의 규칙으로 문자, 숫자 등을 순서를 정하여 값을 꺼낸다.)