[자바스크립트] 논리 연산자
글 작성자: 망고좋아
반응형
논리 연산자
- 논리 연산자
||
(OR),&&
(AND),!
(NOT)이 있다.
|| (OR)
- 피연산자가 모두
false
인 경우를 제외하고 연산 결과는 항상true
alert( true || true ); // true
alert( false || true ); // true
alert( true || false ); // true
alert( false || false ); // false
첫 번째 truthy를 찾는 OR 연산자 ‘||’
- 자바스크립트에서만 제공하는 논리 연산자 OR의 '추가’ 기능
- OR 연산자와 피연산자가 여러 개인 경우:
result = value1 || value2 || value3;
- 이때, OR
||
연산자는 다음 순서에 따라 연산을 수행한다.- 가장 왼쪽 피연산자부터 시작해 오른쪽으로 나아가며 피연산자를 평가
- 각 피연산자를 불린 형으로 변환한다. 변환 후 그 값이
true
이면 연산을 멈추고 해당 피연산자의 변환 전 원래 값을 반환한다. - 피연산자 모두를 평가한 경우(모든 피연산자가
false
로 평가되는 경우)엔 마지막 피연산자를 반환한다.
- 핵심은 반환 값이 형 변환을 하지 않은 원래 값이라는 것이다.
"||"
연산자를 여러 개 체이닝(chaining) 하면 첫 번째 truthy를 반환합니다. 피연산자에 truthy가 하나도 없다면 마지막 피연산자를 반환한다.
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이므로, 마지막 값을 반환함)
let firstName = "";
let lastName = "";
let nickName = "바이올렛";
alert( firstName || lastName || nickName || "익명"); // 바이올렛
// 만약 모든 변수가 false면 "익명" 출력
단락 평가
- 단락 평가는 연산자 왼쪽 조건이 falsy일 때만 명령어를 실행하고자 할 때 자주 쓰인다.
true || alert("not printed");
false || alert("printed");
// 출력 : printed
&& (AND)
alert( true && true ); // true
alert( false && true ); // false
alert( true && false ); // false
alert( false && false ); // false
- 피연산자 모두가 평가되는 경우(모든 피연산자가
true
로 평가되는 경우)엔 마지막 피연산자가 반환된다. &&
의 우선순위가||
보다 높다.
! (NOT)
alert( !true ); // false
alert( !0 ); // true
- NOT을 두 개 연달아 사용(
!!
)하면 값을 불린 형으로 변환할 수 있다.
alert( !!"non-empty string" ); // true
alert( !!null ); // false
📌 참고
반응형
'프로그래밍 > JavaScript' 카테고리의 다른 글
[자바스크립트] while과 for 반복문 (0) | 2021.06.29 |
---|---|
[자바스크립트] null 병합 연산자 -'??' (0) | 2021.06.29 |
[자바스크립트] if와 '?'를 사용한 조건 처리 (0) | 2021.06.29 |
[자바스크립트] 비교 연산자 (0) | 2021.06.29 |
[자바스크립트] 기본 연산자와 수학 (0) | 2021.06.29 |
댓글
이 글 공유하기
다른 글
-
[자바스크립트] while과 for 반복문
[자바스크립트] while과 for 반복문
2021.06.29 -
[자바스크립트] null 병합 연산자 -'??'
[자바스크립트] null 병합 연산자 -'??'
2021.06.29 -
[자바스크립트] if와 '?'를 사용한 조건 처리
[자바스크립트] if와 '?'를 사용한 조건 처리
2021.06.29 -
[자바스크립트] 비교 연산자
[자바스크립트] 비교 연산자
2021.06.29