08.1. 블록문, 조건문
Block Statement, Conditional Statement
블록문
블록문
은 0개 이상의 문을 중괄호로 묶은 것으로, 코드 블록 또는 블록이라고 부르기도 합니다.
Key Point💡
자바스크립트는
블록문
을 하나의 실행 단위로 취급합니다.
블록문은 단독으로 사용할 수도 있으나, 일반적으로 제어문이나 함수를 정의할 때 사용하는 것이 일반적입니다. 문의 끝에 ;
을 붙이는 것이 일반적입니다. 하지만 블록문은 언제나 문의 종료를
의미하는 자체 종결성을 갖기 떄문에 블록문의 끝에는 세미콜론을 붙이지 않습니다.
// 블록문
{
var foo = 10;
}
// 제어문
var x = 1;
if (x < 10) {
x++;
}
// 함수 선언문
function sum(a, b) {
return a + b;
}
조건문
조건문
은 주어진 조건식
의 평가 결과에 따라 코드 블록의 실행을 결정한다.
Key Point💡
조건식은 불리언 값으로 평가될 수 있는 표현식이다 .
if ... else 문
if ... else
문은 주어진 조건식(불리언 값으로 평가될 수 있는 표현식)의 평가 결과 즉, 논리적 참 또는 거짓에 따라 실행할 코드 블록을 결정합니다.
if (조건식) {
// 조건식이 참이면 이 코드 블록을 실행합니다.
} else {
// 조건식이 거짓이면 이 코드 블록이 실행됩니다.
}
만약 조건식이 불리언 값이 아닌 값으로 평가되면 자바스크립트 엔진에 의해
암묵적 불리언 값
으로 강제 변환되어 실행할 코드 블록을 결정합니다.
Key Point💡
조건식의 조건을 늘리고 싶으면
else if
문을 사용합니다.
if (조건식1) {
// 조건식1 이 참이면 이 코드 블록을 실행합니다.
} else if (조건식2) {
// 조건식 2가 참이면 이 코드 블록을 실햅합니다.
} else {
// 조건식1과 조건식2가 모두 거짓이면 이 코드 블록이 실행됩니다.
}
대부분의
if...else
문은 삼항 조건 연산자로 바꿔 쓸 수 있습니다.
// x가 짝수면 result 변수에 문자열 '짝수'를 할당하고, 홀수이면 문자열 '홀수'를 할당한다.
var x = 2;
var result;
if (x % 2) {
// 2 % 2 는 0이다. 이때, 0은 falsy값으로 false로 암묵적 강제 변환된다.
result = "홀수";
} else {
result = "짝수";
}
console.log(result); // 짝수
// 삼항 연산자로 변환
// 0은 false로 취급되면서 : 뒤의 조건의 결과를 평가되어 할당하게 됩니다.
result = x % 2 ? "홀수" : "짝수";
console.log(result); // 짝수
Key Point💡
삼항 조건 연산자는 값으로 평가되는 표현식을 만듭니다. 따라서, 값처럼 사용할 수 잇기 때문에 변수에 할당할 수 있습니다. 하지만,
if...else
문은 표현식이 아닌 문입니다. 따라서,if...else
문은 값처럼 사용할 수 없기 때문에 변수에 할당할 수 없습니다.
switch 문
switch
문은 주어진 표현식을 평가하여 그 값과 일치하는 표현식을 갖는 case
문으로 실행 흐름을 옮깁니다. case
문은 상황을 의미하는 표현식을 지정하고 콜론으로 마칩니다 .그리고 그 뒤에 실행할 문들을 위치시킵니다. 만약 case
가 없다면 default
문으로 이동합니다.
default
문은 선택사항으로 사용할수도 있고 사용하지 않을수도 있습니다.
switch (표형식) {
case 표현식1:
// switch 문의 표현식과 표현식1이 일치하면 실행될 문
break;
case 표현식2:
// switch 문의 표현식과 표현식 2가 일치하면 실행될 문
break;
default:
// switch 문의 표현식과 일치하는 case문이 없을 때 실행될 문
}
if...else
문의 조건식은 불리언 값으로 평가되어야 하지만,switch
문의 표현식은 불리언 값보다는 문자열이나 숫자 값인 경우가 많다.break
문이 없으면 코드 블록을 탈출하지 않고, 밑의 조건들을 재할당한 후에 마지막으로default
의 결과를 재할당한 결과가 출력됩니다.
Key Point💡
if...else
문은 논리적 참, 거짓으로 실행할 코드 블록을 결정합니다.switch
문은 논리적 참, 거짓보다는 상황(case)에 따라 실행할 코드블록을 결정할 떄 사용합니다.
요약
블록문
은 0개 이상의 문을 중괄호로 묶은 것으로, 코드 블록 또는 블록이라고 부르기도 합니다.조건문
은 주어진조건식
의 평가 결과에 따라 코드 블록의 실행을 결정한다.삼항 조건 연산자는 값처럼 사용할 수 잇기 때문에 변수에 할당할 수 있습니다.
if...else
문은 표현식이 아닌 문으로 값처럼 사용할 수 없어 변수에 할당할 수 없습니다.
Last updated