본문 바로가기
언어/JavaScript

논리 연산자

by seacode 2025. 3. 24.

1. JS에서만 제공하는 || (OR) 추가 기능

alert( 1 || 0 ); // 1 (1은 truthy임)

alert( null || 1 ); // 1 (1은 truthy임)
alert( null || 0 || 1 ); // 1 (1은 truthy임)

alert( undefined || null || 0 ); // 0 (모두 falsy이므로, 마지막 값을 반환함)

- || 연산자와 피연산자가 여러 개인 경우 (AND 연산자(&&) 도 프로세스는 유사. 값만 반대)

  1. 가장 왼쪽에서부터 오른쪽으로 연산
  2. 각 피연산자를 boolean 으로 변환. 변환 후 값이 true 면 연산 중지 및 해당 피연산자의 변환 전 원래 값 반환
  3. 피연산자를 모두 평가 한 경우(전부 false) 마지막 피연산자 반환.
OR "||" 연산자를 여러 개 체이닝(chaining) 하면 첫 번째 truthy를 반환한다.
피연산자에 truthy가 하나도 없다면 마지막 피연산자를 반환한다.

 

2. OR 추가기능을 사용한 여러 활용

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

alert( firstName || lastName || nickName || "익명"); // 바이올렛
  • 변수 or 표현식으로 구성된 목록에서 첫 번째 참 값(truthy) 얻기
    • || 를 통해 실제 값이 들어있는 변수 nickName 을 찾고 그 값을 보여줄 수 있다.
    • 변수가 모두 비어있다면 "익명" 을 보여줄 수 있다.
true || alert("not printed");
false || alert("printed"); //< 이거만 출력된다.
  • 단락 평가
    • || 는 왼쪽에서 오른쪽으로 평가하는데, 참을 만나면 나머지 값을 건드리지 않는다. 이를 '단략 평가' 라고 한다.
    • 이는 두 번째 피연산자가 변수 할당과 같은 side effect를 가지는 표현식일 때 명확히 볼 수 있다.
    • 왼쪽 조건이 falsy 일 때만 명령어를 실행하고자 할 때 주로 사용됨.

3. NOT 연산자

- 인수를 하나만 받아서 피연산자에 대해 not 연산을 진행함.

- NOT을 2개 연달아 써서 boolean 형으로 변환 가능 (ex. alert( !!null ) // false)

- 내장함수 Boolean(null); 처럼 써서 같은 결과 도출 가능.

- 모든 논리연산자 중 최우선순위 (연산 순위: ! > && > ||)

 

* alert() 메소드의 리턴값은 undefined

'언어 > JavaScript' 카테고리의 다른 글

반복문  (0) 2025.04.01
?? 연산자  (0) 2025.03.28
조건문  (0) 2025.03.21
비교 연산자  (2) 2025.03.21
연산자 주의사항 요약  (0) 2025.03.19