if문은 조건이 참일때, 작업을 실행시킨다.
if...else문은 조건에 따라 이분법적인 작업을 실행시킨다. if의 조건이 참이라면 if문 안에 있는 작업을 실행, 거짓이라면 else의 작업을 실행한다.
추가적인 조건은 else if문을 이용하여 더할 수 있다.
비교 연산자는 <, <=, >, >=, ===, !==가 있으며 두가지의 값을 비교한다.
논리 연산자는 and를 뜻하는 &&(둘다 참이어야함), or을 뜻하는 ||(둘 중 하나만 참이어도 됨)가 있다.
부정은 !로 나타낸다.
삼항 조건 연산자(ternary operator)는 맨 앞에 조건문 들어가고 그 뒤로 물음표(?)와 조건이 참이라면 실행할 식이 물음표 뒤로 들어간다. 바로 뒤로 콜론(:)이 들어가며 조건이 거짓이라면 실행할 식이 마지막에 들어간다. 보통 if 명령문의 단축 형태로 쓰인다.
<script>
let age = 28;
let beverage = (age >= 21) ? 'beer' : 'juice';
console.log(beverage); // 'beer'
</script>
💡 단락 회로 평가: 왼쪽에서 오른쪽으로 연산하는 논리연산자의 연산 순서를 활용하는 문법
// && 연산자는 앞의 값이 false이면 뒤의 값을 확인하지 않고 바로 리턴한다.
// 둘 다 트루라면 맨 마지막의 값이 리턴된다.
console.log(true && true)
// || 연산자는 앞의 값이 true라면 뒤의 값을 확인하지 않고 리턴한다.
console.log(true || false)
const getName = (person) => {
const name = person && person.name;
return name || "객체가 아닙니다."
};
let person = {name: "서지연"};
const name = getName(person);
console.log(name);
switch문은 if문이 여러개일때 사용하기 좋다.
switch문을 사용한 비교법은 특정 변수를 다양한 상황에서 비교할 수 있게 해준다. 코드 자체가 비교 상황을 잘 설명한다는 장점도 있다.
switch문은 하나 이상의 case문으로 구성된다. default문도 있지만, 필수는 아니다.
<script>
let a = 2 + 2;
switch (a) {
case 3:
alert( '비교하려는 값보다 작습니다.' );
break; //break는 값이 참일때, 나머지 case까지 확인할 필요없도록 해주는 장치이다.
case 4:
alert( '비교하려는 값과 일치합니다.' );
break;
case 5:
alert( '비교하려는 값보다 큽니다.' );
break;
default:
alert( "어떤 값인지 파악이 되지 않습니다." );
}
</script>