[JS] 논리 연산자

KJA·2022년 6월 10일
0

|| (OR)

  • 불린값을 조작하는데 쓰입니다.
  • 인수 중 하나라도 true이면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
console.log( true || true );   // true
console.log( false || true );  // true
console.log( true || false );  // true
console.log( false || false ); // false

피연산자가 모두 false인 경우를 제외하고 연산 결과는 항상 true입니다.
피연산자가 불린형이 아니면, 평가를 위해 불린형으로 변환됩니다.
숫자 1true로, 숫자 0false로 바뀝니다.

if (1 || 0) { // if( true || false ) 와 동일하게 동작
  console.log( 'truthy!' );
}

첫 번째 truthy를 찾는 OR 연산자

OR"||" 연산자를 여러 개 체이닝(chaining) 하면 첫 번째 truthy를 반환합니다. 피연산자에 truthy가 하나도 없다면 마지막 피연산자를 반환합니다.

let firstName = "";
let lastName = "";
let nickName = "바이올렛";

console.log( firstName || lastName || nickName || "익명"); // 바이올렛

&& (AND)

  • 두 피연산자가 모두가 참일 때 true를 반환합니다. 그 외의 경우는 false를 반환합니다.
  • &&의 우선순위가 ||보다 높습니다.
console.log( true && true );   // true
console.log( false && true );  // false
console.log( true && false );  // false
console.log( false && false ); // false

예시

let hour = 12;
let minute = 30;

if (hour == 12 && minute == 30) {
  console.log( '현재 시각은 12시 30분입니다.' );
}

첫 번째 falsy를 찾는 AND 연산자

console.log( 1 && 2 && null && 3 ); // null

console.log( 1 && 2 && null && 3 ); // 모두 truthy이므로 3 반환

!(NOT)

  • 피연산자를 불린형(true / false)으로 변환합니다.
  • 1에서 변환된 값의 역을 반환합니다.
  • 모든 논리 연산자 중에서 우선순위가 가장 높기 때문에 항상 &&, || 보다 먼저 실행됩니다.

예시

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

NOT을 두개 연달아 사용(!!)하면 값을 불린형으로 변환할 수 있습니다.

console.log( !!"non-empty string" ); // true
console.log( !!null ); // false

내장 함수Boolean을 사용하면 !!을 사용한 것과 같은 결과를 도출할 수 있습니다.

console.log( Boolean("non-empty string") ); // true
console.log( Boolean(null) ); // false

0개의 댓글