조건문(conditional statement)은 주어진 조건식(conditional expression)의 평가 결과에 따라 코드 블럭(블록문)의 실행을 결정한다. 조건식은 Boolean 값으로 평가될 수 있는 표현식이다.
자바스크립트는 2가지의 조건문 if…else 문과 switch 문을 제공한다.
- truthy와 falsy 가 조건문에서 작동하는 방식을 이해할 수 있다.
- 비교연산자를 통한 엄격한 비교(=== , !==)에 대해 이해할 수 있다.
- if 와 else if , else를 이해하고 무리없이 활용할 수 있다.
- 논리연산자를 (&&, ||, !, ...)을 통해 복잡한 조건을 간결하게 작성할 수 있다.
- 에러 메세지 읽는 법을 배우고, 이를 기반으로 작성한 코드를 수정하는 방법을 배운다.
- 복잡한 조건문을 활용하여, 실생활에서 쉽게 마주하는 문제를 해결하기 위한 알고리즘을 구현할 수 있다.
if…else
문은 Boolean 값이 true
or false
인지에 따라 실행할 코드 블록을 결정한다. 만약 조건식의 평가 결과가 불리언 값이 아니면 불리언 값으로 강제 변환되어 true
or false
를 구별한다.
if (조건식) {
// 조건식이 true 이면 이 코드 블록이 실행된다.
} else {
// 조건식이 false 이면 이 코드 블록이 실행된다.
}
true
일 경우, if
문 다음의 코드 블록이 실행된다. false
일 경우, else
문 다음의 코드 블록이 실행된다.조건식을 추가하고 싶으면 else if 문을 사용한다.
if (조건식1) {
// 조건식1이 참이면 이 코드 블록이 실행된다.
} else if (조건식2) {
// 조건식2이 참이면 이 코드 블록이 실행된다.
} else {
// 조건식1과 조건식2가 모두 거짓이면 이 코드 블록이 실행된다.
}
//비교의 결과는 항상 boolean 즉 true or false
100 > 1000; // false
100 < 1000; // true
'hello' === 'world'; // false
if (조건1) {
// 조건1 통과 O
} else if (조건2) {
// 조건1 통과 X
// 조건2 통과 O
} else {
// 모든 조건 통과 X
}
두 가지 조건 한번에 적용 되는 경우
논리 연산자(logical operator)를 사용
//학생이면서 여성일 때 통과
isStudent && isFemale; // AND 연산자
//학생이거나, 여성일 때 통과
isStudent || isFemale; // OR 연산자
//학생이 아니면서, 여성일 때 통과
!isStudent && isFemale; // ! => NOT 연산자
!false // true
!(100<500) // false
// 두 가지 조건 중 하나 만족
true || true // true
true || false // true
false || false // false
// 두 가지 조건 다 만족
true || true // true
true || false // true
false || false // false
!false // true
!(100<500) // false
!undefinded // true
!'Hello' // false
// if 문에서 false로 변환되므로 if 구문이 실행되지 않는다.
if (false)
if (null)
if (undefined)
if (0)
if (NaN)
if ('')