지정한 조건이 참으로 평가되는 동안 지정된 블록문을 반복 실행할 때 사용하는 문법
객체를 출력할 수 없다
do {
// 먼저 실행함
} while (); // 조건 or 값이 true면 무한 반복
while () { // 조건 or 값이 true면 무한 반복
// 실행 부분
}
// i의 초기값은 0, i가 10보다 작을 때까지, 1씩 증가
for(let i = 0; i < 10; i++){
// 실행 부분
}
// 배열을 반복한다
// 인덱스에 접근한다.
for (let index in strArr) {
console.log(index);
}
// for..in 문에서 배열을 출력하면 인덱스 번호가 출력된다.
// 객체를 반복한다
// key에 접근한다
const userObj = {
name: 'a'
}
for (let key in userObj) {
console.log(userObj.key);
// undefined가 나옴. 왜?! key라는 이름을 가진 값이 userObj에 없음.
console.log(userObj[key]);
// 정상적으로 나온다.
}
// 실제 값에 접근, 객체는 불가능
for (let value of arr) {
console.log(value);
}
continue
: 반복을 건너뛰게 함break
: 반복을 종료할 때 쓰는 키워드객체지만 배열처럼 보이는 것
const a = "Hello";
a.length; // --> 5 배열에 사용하는 length 속성 사용 가능
a[1]; // --> e 인덱스도 사용 가능
// 1. 메서드 사용
const result =
numbers
.map(n => Math.round(n * 10))
.filter(n => n % 2 === 0)
.reduce((a, n) => a + n, 0);
// 2. 명령형
let result = 0;
for (let i = 0; i < numbers.length; i++) {
let n = Math.round(numbers[i] * 10);
if (n % 2 !== 0) continue;
result = result + n;
}
출처: [번역] 재미와 이익을 위한 자바스크립트 최적화