💡 아래 내용은 모던 자바스크립트 딥다이브를 공부하며 이해했던 내용을 다루고 있습니다. 혹시 틀렸거나 잘못된 정보가 있다면 알려주세요!
블록문은 중괄호 {} 로 둘러싸인 코드 블록을 말합니다.
if-else
문은 조건에 따라 다른 블록문을 실행하는 제어문입니다. if문은 주어진 조건이 참(true)인 경우에 해당하는 블록문을 실행하고, else문은 조건이 거짓(false)인 경우에 해당하는 블록문을 실행합니다.
if (condition) {
// condition이 true인 경우 실행될 블록문
} else {
// condition이 false인 경우 실행될 블록문
}
switch
문은 다양한 경우에 따라 다른 코드 블록을 실행하는 제어문입니다.
switch (expression) {
case value1:
// value1과 expression이 일치하는 경우 실행될 코드 블록
break;
case value2:
// value2와 expression이 일치하는 경우 실행될 코드 블록
break;
default:
// 위의 case와 일치하는 값이 없을 때 실행될 코드 블록
}
for
문은 일반적으로 특정 횟수만큼 반복하거나 배열 등을 순회할 때 사용됩니다.
for
문이 더 많은 세부 사항을 다루고 구체적인 조작을 하는 저수준(low-level)입니다.for
문은 반복문의 바깥에서 선언된 변수를 변경하여 상태를 갱신하지만, 불변성을 강조하는 선언형 프로그래밍에서는map
을 이용해 새로운 상태를 생성하는 방식을 선호합니다. 또, 명시적으로 변수와 조건식을 작성하는for
문과 달리 선언형 프로그래밍에서는 반복 로직을 추상화하고, 고차함수를 사용하여 처리하고 변환하는 방식을 선호합니다.
코드의 의도를 더 명확하게 표현하고 불변성을 유지하기 위해서입니다.
while
문은 조건이 참(true)인 동안 반복적으로 코드 블록을 실행하는 반복문입니다.
while (조건) {
// 반복적으로 실행할 코드
}
do...while문은 코드 블록을 먼저 실행하고, 그 다음에 조건을 평가하여 반복 여부를 결정합니다.
let i = 1;
do {
console.log(i);
i++;
} while (i <= 5);
for...in
문은 객체의 속성을 반복적으로 열거하는 데 사용되는 반복문입니다. 주의할 점은for...in
문을 사용할 때 순서가 보장되지 않으므로, 일반적으로 배열의 인덱스 순회에는for...in
문을 사용하지 않는 것이 좋습니다. 대신for
문이나forEach
메서드를 사용하는 것이 바람직합니다. 또한,for...in
문은 상속된 속성도 열거할 수 있으므로hasOwnProperty()
메서드를 사용하여 객체가 직접 소유한 속성인지 확인하는 것이 좋습니다.
const obj = {
name: 'John',
age: 25,
email: 'john@example.com',
};
for (let prop in obj) {
if (obj.hasOwnProperty(prop)) {
console.log(prop + ': ' + obj[prop]);
}
}
ES6에서 도입된 스펙으로, 배열 및 이터러블 객체의 요소를 반복적으로 순회하는 데 사용됩니다.
const arr = [1, 2, 3, 4, 5];
for (let element of arr) {
console.log(element);
}
for...of
문은 이터러블 객체에서 사용되고,for...in
문은 객체의 속성을 열거하는 데 사용됩니다. 또한,for...of
문은 요소를 순차적으로 접근하지만for...in
문은 무작위로 열거한다는 차이가 있습니다. 따라서, 배열을 순회할 때는for...of
문을 사용하는 것이 적합하며, 객체의 속성을 열거하거나 순서가 중요하지 않은 경우에는for...in
문을 사용하는 것이 적합합니다.
이터러블 객체란 ES6에서 도입된 개념으로, 반복 가능한 객체를 뜻합니다. 이터러블 객체는
Symbol.iterator
메서드를 가지며, 이 메서드는 이터레이터(iterator)를 반환하는 역할을 합니다. 이터레이터는 반복 작업을 수행할 수 있는 값의 시퀀스를 정의하는 객체입니다.
break
문은 반복문에서 실행을 중지하고 해당 블록을 빠져나올 때 사용됩니다.
for (let i = 0; i < numbers.length; i++) {
if (numbers[i] === target) {
found = true;
break;
}
}
continue
문은 반복문 내에서 현재 반복을 중지하고 다음 반복으로 진행하는 데 사용됩니다.
for (let i = 0; i < numbers.length; i++) {
if (numbers[i] === 3) {
continue;
}
console.log(numbers[i]);
}