모던 자바스크립트 딥다이브, 면접과 함께 공부하기 - 08장 제어문

지인·2023년 7월 12일
0

DeepDive

목록 보기
5/17
post-thumbnail

💡 아래 내용은 모던 자바스크립트 딥다이브를 공부하며 이해했던 내용을 다루고 있습니다. 혹시 틀렸거나 잘못된 정보가 있다면 알려주세요!

📌 08장 제어문

8.1 블록문

블록문은 중괄호 {} 로 둘러싸인 코드 블록을 말합니다.

8.2 조건문

8.2.1 if...else 문

if-else문은 조건에 따라 다른 블록문을 실행하는 제어문입니다. if문은 주어진 조건이 참(true)인 경우에 해당하는 블록문을 실행하고, else문은 조건이 거짓(false)인 경우에 해당하는 블록문을 실행합니다.

if (condition) {
// condition이 true인 경우 실행될 블록문
} else {
// condition이 false인 경우 실행될 블록문
}

8.2.2 switch 문

switch문은 다양한 경우에 따라 다른 코드 블록을 실행하는 제어문입니다.

switch (expression) {
  case value1:
  // value1과 expression이 일치하는 경우 실행될 코드 블록
    break;
  case value2:
  // value2와 expression이 일치하는 경우 실행될 코드 블록
    break;
  default:
 // 위의 case와 일치하는 값이 없을 때 실행될 코드 블록
}

8.3 반복문

8.3.1 for 문

for 문은 일반적으로 특정 횟수만큼 반복하거나 배열 등을 순회할 때 사용됩니다.

선언형 프로그래밍 관점에서 for문과 map은 어떤 차이가 있나요?

for 문이 더 많은 세부 사항을 다루고 구체적인 조작을 하는 저수준(low-level)입니다. for문은 반복문의 바깥에서 선언된 변수를 변경하여 상태를 갱신하지만, 불변성을 강조하는 선언형 프로그래밍에서는 map을 이용해 새로운 상태를 생성하는 방식을 선호합니다. 또, 명시적으로 변수와 조건식을 작성하는 for문과 달리 선언형 프로그래밍에서는 반복 로직을 추상화하고, 고차함수를 사용하여 처리하고 변환하는 방식을 선호합니다.

왜 반복 로직을 추상화하고, 고차함수를 사용하는 방식을 선호하나요?

코드의 의도를 더 명확하게 표현하고 불변성을 유지하기 위해서입니다.

8.3.2 while 문

while문은 조건이 참(true)인 동안 반복적으로 코드 블록을 실행하는 반복문입니다.

while (조건) {
  // 반복적으로 실행할 코드
}

8.3.3 do...while 문

do...while문은 코드 블록을 먼저 실행하고, 그 다음에 조건을 평가하여 반복 여부를 결정합니다.

let i = 1;

do {
  console.log(i);
  i++;
} while (i <= 5);

8.3.4 for...in 문

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]);
  }
}

8.3.5 for...of 문

ES6에서 도입된 스펙으로, 배열 및 이터러블 객체의 요소를 반복적으로 순회하는 데 사용됩니다.

const arr = [1, 2, 3, 4, 5];

for (let element of arr) {
  console.log(element);
}

그렇다면, for in문과 for of문에는 어떤 차이가 있나요?

for...of문은 이터러블 객체에서 사용되고, for...in문은 객체의 속성을 열거하는 데 사용됩니다. 또한, for...of문은 요소를 순차적으로 접근하지만 for...in문은 무작위로 열거한다는 차이가 있습니다. 따라서, 배열을 순회할 때는 for...of문을 사용하는 것이 적합하며, 객체의 속성을 열거하거나 순서가 중요하지 않은 경우에는 for...in문을 사용하는 것이 적합합니다.

이터러블 객체가 뭔가요?

이터러블 객체란 ES6에서 도입된 개념으로, 반복 가능한 객체를 뜻합니다. 이터러블 객체는 Symbol.iterator 메서드를 가지며, 이 메서드는 이터레이터(iterator)를 반환하는 역할을 합니다. 이터레이터는 반복 작업을 수행할 수 있는 값의 시퀀스를 정의하는 객체입니다.

8.4 break 문

break문은 반복문에서 실행을 중지하고 해당 블록을 빠져나올 때 사용됩니다.

for (let i = 0; i < numbers.length; i++) {
  if (numbers[i] === target) {
    found = true;
    break;
  }
}

8.5 continue 문

continue문은 반복문 내에서 현재 반복을 중지하고 다음 반복으로 진행하는 데 사용됩니다.

for (let i = 0; i < numbers.length; i++) {
  if (numbers[i] === 3) {
    continue;
  }
  console.log(numbers[i]);
}
profile
안녕하세요

0개의 댓글