8장 제어문 ~ 9장 타입변환 및 단축평가

Boseong Choi·2023년 6월 18일
0

8장 제어문

제어문은 조건에 따라 코드 블록을 실행(조건문)하거나 반복 실행(반복문)할 때 사용한다. 일반적으로 코드는 위에서 아래로 순차적으로 실행되지만 제어문을 사용하면 코드의 흐름을 인위적으로 제어할 수 있다.

8.1 블록문

블록문은 0개 이상의 문을 중괄호로 묶은 것으로 코드 블록 또는 블록이라고 부른다. 자바스크립트는 블록문을 하나의 실행 단위로 취급한다. 블록문은 단독으로 사용할 수도 있으나 일반적으로 제어문이나 함수 선언문에서 사용한다.

// 블록문
{
    var foo = 10;
}

// 제어문
var x = 1;
if (x < 10) {
    x++;
}

// 함수 선언문
function sum(a, b) {
    return a + b;
}

8.2 조건문

조건문은 주어진 조건식(conditional expression)의 평가 결과에 따라 코드 블록(블록문)의 실행을 결정한다. 조건식은 불리언 값으로 평가될 수 있는 표현식이다. 조건식의 평가 결과가 true이면 블록문이 실행되고, false이면 블록문이 실행되지 않는다.

  • 경우의 수가 세 가지라면?
var num = 2;

var kind = num ? (num > 0 ? '양수' : '음수') : '영';

8.3 반복문

반복문은 조건식의 평가 결과가 참인 경우 코드 블록을 실행한다. 코드 블록을 실행한 후 조건식을 다시 평가하여 여전히 참인 경우 다시 코드 블록을 실행한다. 이러한 과정이 반복되다가 조건식의 평가 결과가 거짓이 되면 반복문을 중단한다.

반복문을 대체할 수 있는 다양한 기능

  • 배열을 순회할 때 사용하는 forEach 메서드
  • 객체의 프로퍼티를 열거할 때 사용하는 for ... in 문
  • ES6에서 도입된 for ... of 문 등
  • for 문의 실행 순서

9장 타입 변환과 단축 평가

개발자가 의도적으로 타입을 변환하는 것을 명시적 타입 변환 또는 타입 캐스팅이라한다. 반대로, 개발자의 의도와 상관없이 표현식을 평가할 때 엔진에 의해 암묵적으로 타입이 변환되기도 하는데, 이를 암묵적 타입 변환 또는 타입 강제 변환이라 한다.

단축 평가

'Cat' && 'Dog' // -> "Dog"

이 때 논리곱 연산자는 논리 연산의 결과를 결정하는 두 번째 피연산자 'Dog'를 반환한다.

'Cat' || 'Dog' // -> "Dog"

논리합 연산자는 논리 연산의 결과를 결정한 첫 번째 피연산자 'Cat' 을 반환한다.

논리곱과 논리합 연산자는 논리 연산의 결과를 결정하는 피연산자를 타입 변환하지 않고 그대로 반환한다. 이를 단축평가라고 한다. 단축 평가는 표현식을 해석하는 도중에 결과가 이미 확정된경우 나머지 해석을 생략하는 것을 말한다.

profile
Frontend Developer

0개의 댓글