- 두 피연산자 간의 논리적인 판별을 수행하는 연산자
- boolean 타입으로 결과값 리턴
논리곱 &&
(AND)
값1 && 값2
두 피연산자로 주어진 값이 모두 참일 때만 true, 하나라도 틀리면 false
⇒ 왼쪽이 참이면 오른쪽을 평가한다.
논리합 ||
(OR)
값1 || 값2
두 피연산자로 주어진 값 중 하나라도 참이면 true, 모두 틀리면 false
⇒ 값1 이 참이면 값2까지 가지 않고 그냥 바로 리턴
⇒ 왼쪽이 거짓일때 오른쪽을 평가한다.
논리부정 !
(NOT)
!값1
원래의 값을 반대로 반전시킴
- 조건의 결과에 따라 다른 실행 결과를 가지는 연산을 수행
- Javascript에서 피연산자 3개를 가지는 유일한 조건연산자
- 해당 연산자는
if...else문
의 대체재로 빈번히 사용- 간단한 코드면 삼항조건연산자가 편리하고 가독성이 좋으나 복잡하면
if
else
가 좋음- 조건식 ? 참일 경우 실행 결과 : 거짓일 경우 실행 결과
let result = 2 < 3 ? '네!' : '아니오!';
console.log(result); // 네!
// 삼항연산자
let num = 5;
num % 2 === 0 ? console.log('짝수') : console.log('홀수'); // '홀수'
// if...else문
let num = 5;
if (num % 2 === 0) {
console.log ('짝수');
} else {
console.log ('홀수');
}
--------^^^^--------
// 삼항연산자 중복으로 하기
let age = 15;
age < 13 // if (age < 13) {
? console.log('초등학생') // console.log ('초등학생');
: age > 13 && age <= 19 // } else if (age > 13 && age <= 19) {
? console.log('청소년') // console.log ('청소년');
: console.log('성인'); // } else {console.log ('성인');}
- 여러 개의 피연산자 중 값이 확정되어 있는 피연산자(변수)를 찾는 연산 수행
- a ?? b ?? c (갯수 상관 없이 값이 있는게 나올 때 까지)
⇒ 변수의 값이 null 이나 undefined가 아니면 그 값을 선택하지만
null 이나 undefined 라면 다음 피연산자를 평가(피연산자 갯수만큼 반복)
let a = undefined;
let b = null;
let c = null;
let d = 'hi';
let e - 'bye';
console.log(a ?? b ?? c ?? d ?? e); // hi
console.log(a ?? b); // null
console.log(e ?? d); // bye
console.log(d ?? e); // hi