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 연산자(&&) 도 프로세스는 유사. 값만 반대)
- 가장 왼쪽에서부터 오른쪽으로 연산
- 각 피연산자를 boolean 으로 변환. 변환 후 값이 true 면 연산 중지 및 해당 피연산자의 변환 전 원래 값 반환
- 피연산자를 모두 평가 한 경우(전부 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 |