논리 연산자는 대개 복잡한 비교 연산을 표현하기 위해 비교 연산자와 함께 사용되곤 한다.
&& 연산자는 두 피연산자가 모두 참인 경우에만 참을 반환한다. 두 피연산자 가운데 하나 또는 둘 모두가 거짓일 경우 거짓을 반환한다.
console.log(true && true); // true console.log(true && false); // false
첫 번째 피연산자가 거짓으로 변환될 수 있으면 && 연산자에서는 왼쪽 수식의 값을 반환한다. 예를 들어 왼쪽 피연산자가 null이나 0, "", undefined로 평가되면 왼쪽 수식의 값을 반환한다.
console.log(0 && true); // 0 console.log("" && true); // (빈 문자열) console.log(null && true); // null console.log(undefined && true); // undefined
첫 번째 피연산자가 거짓으로 변환될 수 없으면 두 번째 피연산자를 평가하고 해당 수식의 변환되지 않은 값을 반환한다.
console.log(10 && true); // true console.log(true && 10); // 10
참고로 왼쪽 수식의 값에 따라 이 연산자에서는 오른쪽 수식을 평가하거나 평가하지 않을 수도 있다.
|| 연산자는 하나 또는 두 피연산자가 참일 경우 참을 반환한다. 두 피연산자가 모두 거짓일 경우 거짓을 반환한다.
console.log(true || true); // true console.log(true || false); // true console.log(false || false); // false
왼쪽 수식의 값이 참으로 변환될 수 있으면 변환되지 않은 왼쪽 수식의 값을 반환한다.
console.log('a' || true); // a console.log(10 || false); // 10
왼쪽 수식의 값이 거짓으로 변환될 수 있으면 오른쪽 수식을 평가해 해당 수식의 변환되지 않은 값을 반환한다.
console.log(false || 'a'); // a console.log(false || 10); // 10 console.log(false || 10 || 'a'); // 10 console.log(false || false || 10); // 10
! 연산자는 피연산자의 불린값을 반대로 바꾼다. 다음 예제를 보자.
console.log(!true); // false console.log(!false); // true console.log(!5); // false console.log(!!5); // true console.log(!0); // true console.log(!!0); // false
← 이전 | 홈 | 다음 → |