조건에 따른 처리는 if문과 ? 연산자를 사용하면 됩니다.
if(표현식 1)
{
// 표현식 1이 참이면 해당 블럭의 코드가 실행됩니다.
}
else if(표현식 2)
{
// 표현식 1은 거짓이지만, 표현식 2가 참이면 해당 블럭의 코드가 실행됩니다.
}
else{
// 거짓이면 해당 블럭의 코드가 실행됩니다.
// else 문은 없어도 됩니다.
}
이 때 if문 안의 표현식을 평가한 후 그 결과를 불린값으로 변환합니다.
falsy값
0, "", null, undefined, NaN이 결과로 나오면 false가 됩니다.
truthy값
위의 falsy값 외의 모든 값은 true로 변환됩니다.
주로 표현식에는 비교연산자를 이용한 표현식이 많이 나옵니다.
var answer;
var age = prompt('나이를 입력해주세요.');
if (age > 18){
answer = true;
}else{
answer = false;
}
alert(answer)
var answer = age>18 ? true : false;
alert (answer)
위 두 코드는 정확하게 같은 표현입니다.
이 때 true, false의 경우는 비교 연산자의 반환값이므로 아래 처럼만 표현해도 됩니다.
var answer = age>18
if (age < 3) {
message = '아기야 안녕?';
} else if (age < 18) {
message = '학생, 안녕!';
} else if (age < 100) {
message = '환영합니다!';
} else {
message = '나이가 아주 많으시거나, 나이가 아닌 값을 입력 하셨군요!';
}
위와 같은 다중 조건문의 경우 다중 ? 연산자를 이용해서 표현할 수 있습니다.
let message = (age < 3) ? '아기야 안녕?' :
(age < 18) ? '안녕!' :
(age < 100) ? '환영합니다!' :
'나이가 아주 많으시거나, 나이가 아닌 값을 입력 하셨군요!';
하지만 ? 연산자의 경우 가독성이 떨어지므로 사용에 주의하여야 합니다.