비교연산자, 부정연산자는 직관적인데 논리 연산자와 Nullish 연산자는 헷갈릴때가 있어 정리하는 시간을 가져보려고 합니다!
우선 Truthy 와 Falsy 값에 대해 알아봅시다.
Falsy 데이터에는 false / 0 / null / undefined / NaN / “” (빈값)
이렇게 있고 그외 나머지 값들은 Truthy 라고 보면 됩니다!
논리연산자에는 ||(OR)
, &&(AND)
, !(NOT)
이렇게 세가지가 있는데 a||b OR연산자
와 a&&b AND
연산자에 대해 보겠습니다.
const a = true;
const b = true;
a && b = true
이겠죠. boolean 값이 아닌 다른 데이터형이 들어가면 어떻게 될까요?
value1 && value2 && value3;
피연산자가 3개인 경우를 봅시다. 피연산자값이 truthy 일 경우 다음 값으로 넘어갑니다. falsy 값을 만나면 바로 반환합니다. 마지막 피연사까지 truthy 라면 마지막 피연산자를 반환합니다.
null && 5 //null
1 && 0 // 0
1 && 5 // 5
if문 안에서 falsy 값이 반환된다면 if 문은 실행되지 않겠죠.
if (1 && 0) {
alert( "hello" );
}
or 연산자는 and 연산자와 반대입니다.
value1 || value2 || value3;
falsy 피연산자가 나오면 그 다음으로 넘어갑니다. 마지막 피연산자까지 falsy가 나오면 마지막 값을 반환합니다. 처음으로 나오는 truthy 값이 있으면 바로 반환합니다.
1 || 0 // 1
null || 0 || 1 // 1
undefined || null || 0 // 0