if와 '?'을 사용해 조건을 처리한다.
여기서 '?'은 물음표 연산자 라고 불린다.
if문은 소괄호 안에 들어가는 조건을 평가한다. 그 결과가 ture일때 if문 안에 있는 문이 실행된다.
if문을 사용시 true일 경우 실행되는 구문이 단 한 줄이라도 중괄호
{}
로 감싸주는 것이 코드가독성이 좋다.
if문은 소괄호 안의 식을 평가 후 그 결과를 boolean값으로 변환한다.
이때 형변환 규칙에 의해 숫자 0, null, undefined, NaN, "" 은 false가 되므로 falsy한 값 이라고 한다.
이 외의 값은 모두 truthy한 값이다.
이 규칙에 따라서 조건문이 false인 경우에는 if문안의 구문이 실행되지 않는다.
항상 true일 경우에만 실행이 된다는 의미이다.
확정된 boolean값(이미 true인지 false인지 확정되어 담긴 변수)을 if문의 조건식에 넣어줄 수도 있다.
if 문에는 else절을 붙일 수 있다. 그 뒤에 이어지는 코드는 if문이 거짓일때 실행된다.
조건이 여러개일 경우 else if
를 사용하여 여러 조건을 처리할 수 있다.
물음표 연산자라고도 불린다.
이 연산자를 사용하면 더 간결하게 조건식을 표현할 수 있다.
조건부 연산자는 물음표로 표시한다.
피연산자가 세개(비교하는 인수가 3개) 이기에 조건부 연산자를 삼항연산자
라고 한다.
let result = condition ? value1 : value2
평가대상 condition이 true면 value1이 , false라면 value2가 반환된다.
물음표 연산자 여러개를 사용하면 복수조건을 처리할 수 있다.
let age = prompt('나이를 입력해주세요.', 18);
let message = (age < 3) ? '아직 애기네요' : (age < 18) ? '미성년자입니다.' : (age < 100) ? '성년입니다.' : '나이가 아주 많으시거나, 나이가 아닌 값을 입력 하셨군요!'; console.log( message );
먼저 age<3을 평가한다. 조건에 맞으면 '아직 애기네요'가 출력되고, 아니라면 다음 조건을 평가한다.
그 다음 조건인 age<18을 평가하고 이 조건이 맞다면 '미성년자입니다'가 출력된다. 이것도 아니면 다음 조건으로 넘어가게 되고 ...
계속해서 이런식으로 작동되고 다 아니라면 마지막의 '나이가 아주 많으시거나, 나이가 아닌 값을 입력 하셨군요!' 가 출력되게된다.
물음표 연산자를 if대용으로 사용하는 경우가 있다.
그러나 가독성이 좋지 않기에 조건에 따라 반환값을 달리하려는 목적에 부합하게 사용하는 것이 좋다.
여러 분기를 만들어 처리할 경우에는 if문을 사용하자!!