불리언 피연산자를 사용하면 논리 연산자는 항상 불리언을 반환합니다.
피연산자가 불리언이 아니라면, 결과를 결정한 값이 반환됩니다.
[표 5-5]와 [표 5-6]을 보십시오.
표 5-5 불리언이 아닌 피연산자에 대한 AND(&&)의 진위표
x | y | x && y |
---|---|---|
거짓 같은 값 | 거짓 같은 값 | x (거짓 같은 값) |
거짓 같은 값 | 참 같은 값 | x (거짓 같은 값) |
참 같은 값 | 거짓 같은 값 | y (거짓 같은 값) |
참 같은 값 | 참 같은 값 | y (참 같은 값) |
표 5-6 불리언 아닌 피연산자에 대한 OR(||)의 진위표
x | y | x || y |
---|---|---|
거짓 같은 값 | 거짓 같은 값 | y (거짓 같은 값) |
거짓 같은 값 | 참 같은 값 | y (참 같은 값) |
참 같은 값 | 거짓 같은 값 | x (참 같은 값) |
참 같은 값 | 참 같은 값 | x (참 같은 값) |
결과를 불리언으로 변환하면 불리언 값을 제공했을 때의 진위표와 같은 결과가 됩니다.
논리 연산자의 이런 동작 방식을 활용하는 간편한 팁이 있습니다.
다음 패턴은 아주 자주 쓰고, 또 보게 될 겁니다.
const options = suppliedOptions || { name: "Default" }
객체는 항상(빈 객체더라도) 참 같은 값으로 평가됩니다.
따라서 suppliedOptions 가 객체이면 options는 suppliedOptions를 가리키게 됩니다.
옵션이 제공되지 않으면 즉 suppliedOptions 가 null이나 undefined라면 options는 기본값을 갖게 됩니다.
NOT 은 불리언이 아닌 값을 반환할 수 없으므로 ! 연산자는 피연산자의 타입이 무엇이든 항상 불리언을 반환합니다.
피연산자가 참 같은 값이면 false를, 거짓 같은 값이면 true를 반환합니다.