논리 연산자

논리 연산자는 대개 복잡한 비교 연산을 표현하기 위해 비교 연산자와 함께 사용되곤 한다.

논리 AND(&&)

&& 연산자는 두 피연산자가 모두 참인 경우에만 참을 반환한다. 두 피연산자 가운데 하나 또는 둘 모두가 거짓일 경우 거짓을 반환한다.

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

참고로 왼쪽 수식의 값에 따라 이 연산자에서는 오른쪽 수식을 평가하거나 평가하지 않을 수도 있다.

논리 OR(||)

|| 연산자는 하나 또는 두 피연산자가 참일 경우 참을 반환한다. 두 피연산자가 모두 거짓일 경우 거짓을 반환한다.

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

논리 NOT(!)

! 연산자는 피연산자의 불린값을 반대로 바꾼다. 다음 예제를 보자.

console.log(!true);     // false
console.log(!false);    // true
console.log(!5);        // false
console.log(!!5);       // true
console.log(!0);        // true
console.log(!!0);       // false

관련 수업

← 이전다음 →