[자바스크립트] 논리 연산자
글 작성자: 망고좋아
반응형

논리 연산자
- 논리 연산자
||
(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.29while과 for 반복문 자바스크립트의 반복문을 알아보자! while 기본 분법 let i = 0; while (i < 3) { alert(i); i++; } // 출력 : 0, 1, 2 let i = 3; while (i) { // i가 0이 되면 false기 때문에 반복문 탈출 alert(i); i--; } // 출력 : 3, 2, 1 🔔 사전 지식( prompt() ) prompt는 사용자가 데이터를 입력할 수 있도록 해주는 함수 아무것도 입력하지 않고 확인 버튼을 누르면 빈 문자열을 반환 취소 버튼을 누르면 null을 반환 let name = prompt("이름 입력하세요."); document.write(name); break를 사용항 반복문 탈출 가능 let sum = 0; while (tr… -
[자바스크립트] null 병합 연산자 -'??'
[자바스크립트] null 병합 연산자 -'??'
2021.06.29 -
[자바스크립트] if와 '?'를 사용한 조건 처리
[자바스크립트] if와 '?'를 사용한 조건 처리
2021.06.29if와 '?'를 사용한 조건 처리 조건에 따라 다른 행동을 취할 때 if문 조건부 연산자 ?를 사용하면 된다. if문 if(….)문은 괄호 안에 들어가는 조건을 평가하는데, 그 결과가 true이면 코드 블록이 실행됩니다. let year = prompt('ECMAScript-2015 명세는 몇 년도에 출판되었을까요?', ''); if (year == 2015) { alert( "정답입니다!" ); alert( "아주 똑똑하시네요!" ); } 불린 형으로 변환 if(…)문은 괄호 안에 0, 빈 문자열"", null, undefined, NaN은 불린 형으로 변환 시 모두 false가 된다. 조건부 연산자 '?' 조건에 따라 다른 값을 변수에 할당해줘야 할 때가 있다. let accessAllowed; … -
[자바스크립트] 비교 연산자
[자바스크립트] 비교 연산자
2021.06.29비교 연산자 다양한 자료형을 대상으로 자바스크립트가 어떻게 비교를 하는지 알아보자. 문자열 비교 자바스크립트는 '사전' 순으로 문자열을 비교한다. (정확히는 유니코드 순으로 비교한다.) alert( 'Z' > 'A' ); // true alert( 'Glow' > 'Glee' ); // true alert( 'Bee' > 'Be' ); // true 다른 형을 가진 값 간의 비교 비교하려는 값의 자료형이 다르면 자바스크립트는 이 값들을 숫자형으로 바꾼다. // 문자열 '2'가 숫자 2로 변환된 후 비교가 진행 alert( '2' > 1 ); // true // 문자열 '01'이 숫자 1로 변환된 후 비교가 진행 alert( '01' == 1 ); // true alert( true == 1 ); // t…
댓글을 사용할 수 없습니다.