자바스크립트 논리 연산자

MooMooJ·2023년 4월 12일
0
post-thumbnail

자바스크립트엔 세 종류의 논리 연산자 ||(OR), &&(AND), !(NOT)이 있습니다.

||(OR), &&(AND), !(NOT)

하나씩 알아봅시다.


|| OR

‘OR’ 연산자는 두 개의 수직선 기호로 만들 수 있습니다.

result = a || b;

프로그래밍에서 보통 OR 연산자는 불린값을 조작하는 데 쓰입니다.

인수 중 하나라도 true 이면 true를 반환하고, 그렇지 않으면 false를 반환하죠.

OR 연산자는 이항 연산자이므로 아래와 같이 네 가지 조합이 가능합니다.

alert( true || true );   // true
alert( false || true );  // true
alert( true || false );  // true
alert( false || false ); // false

좌우 값이 false 인 경우를 제외하고 연산 결과는 항상 true입니다.



피연산자가 불린형이 아니면, 평가를 위해 불린형으로 변환됩니다. 예를 들어, 연산 과정에서 숫자 1은 true로, 숫자 0은 false로 바뀌죠.
if (1 || 0) { 
  alert( 'truthy!' );
}



자바스크립트 에서 OR 연산자의 활용법

예시1 : OR 연산자가 여러개인 경우

result = value1 || value2 || value3;
  1. 가장 왼쪽 피연산자부터 시작해 오른쪽으로 나아가며 피연산자를 평가합니다.

  2. 각 피연산자를 불린형으로 변환합니다. 변환 후 그 값이 true이면 연산을 멈추고 해당 피연산자의 변환 전 원래 값을 반환합니다.

  3. 피연산자 모두를 평가한 경우(모든 피연산자가 false로 평가되는 경우)엔 마지막 피연산자를 반환합니다.




여기서 핵심은 반환 값이 형 변환을 하지 않은 원래 값이라는 것입니다.

아래 코드를 보며 이해해봅시다.

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

alert( firstName || lastName || nickName || "익명"); // 바이올렛



&& (AND)

두 개의 앰퍼샌드를 연달아 쓰면 AND 연산자 &&를 만들 수 있습니다.

result = a && b;

전통적인 프로그래밍에서 AND 연산자는 두 피연산자가 모두가 참일 때 true를 반환합니다. 그 외의 경우는 false를 반환하죠.

alert( true && true );   // true
alert( false && true );  // false
alert( true && false );  // false
alert( false && false ); // false



자바스크립트에서 AND && 연사자의 활용법

result = value1 && value2 && value3;
  1. 가장 왼쪽 부터 시작해 오른쪽으로 나아가며 평가합니다.

  2. 불린형으로 변환합니다.

  3. 변환한 값이 false면 평가를 멈추고 value에 있는 값을 반환합니다.

  4. value값이 모두 평가 될 경우 마지막 value를 반환합니다.


  alert( 1 && 2 && null && 3 ); // null

! (NOT)

논리 연산자 NOT은 느낌표 !를 써서 만들 수 있습니다.

 result = !value;
  1. 불린형으로 변환합니다.

  2. 변환된 값의 역을 반환합니다.

    예시

alert( !true ); // false
alert( !0 ); // true```

NOT을 !! 두 개 연달 아 사용하면 Boolean()과 값이 같습니다.

alert( !!"non-empty string" ); // true
alert( !!null ); // false

위 코드와 같습니다.
alert( Boolean("non-empty string") ); // true
alert( Boolean(null) ); // false
profile
MooMooj

0개의 댓글