파트 1 - 자바스크립트 기본 - 11) 논리 연산자

Lee·2021년 10월 3일
post-thumbnail

논리연산자 파트 링크: https://ko.javascript.info/logical-operators

논리연산자의 종류

논리연산자에는 ||(OR), &&(AND), !(NOT) 이렇게 세 연산자가 있다. Boolean 타입만을 다룰 것 같은 논리연산자지만 피연산자로 Boolean 형 뿐만 아니라 모든 타입을 받을 수 있다. 연산 결과 또한 모든 타입이 나올 수 있다.

논리 연산자는 연산 과정에서 피연산자가 boolean 형이 아니면 해당 값을 boolean 형으로 변환하여 평가한다.
반환하는 값은 해당 피연산자의 원래 형태로 반환한다.


OR(||) 연산자

첫번째 truthy를 반환한다. OR 연산자를 여러개 체이닝해서 사용할 경우에도(a||b||c) 첫번째 truthy를 반환한다.
모든 평가를 마쳤음에도 truthy 가 없다면 제일 마지막 값을 반환한다.

OR 연산자가 제공하는 기능 중 단락평가왼쪽에서 오른쪽으로 진행되는 평가가 중간에 truthy를 만나면 뒤의 값들은 더 건드리지 않고 멈추는 프로세스를 의미한다.
(이 기능은 AND 연산자에서도 같다)


AND(&&) 연산자

첫번째 falsy를 반환한다. 연산을 마칠 때까지 모든 값이 truthy면 마지막 값을 반환한다. (정말 OR 연산자와 동작 방식이 같다)

주의사항

&&의 우선순위가 || 의 우선순위보다 높다!
ex) a && b || c && d 는 (a && b) || (c && d)와 같다.

if를 &&나 ||로 대체하지 말것!
각 문법을 각각의 목적에 맞게 사용해야 한다.


NOT(!) 연산자

!를 한 번 쓰면 피연산자를 boolean 형으로 변환 후 이 변환된 boolean 값의 역(반대) 값을 반환.

!를 두 번(!!) 쓰면 그 역의 값의 역(반대의 반대니까 원래값을 의미)을 반환 하여 특정 값을 boolean 형으로 변환하는 기능을 한다.

※ TIP! alert 메서드는 undefined를 반환한다.

profile
안녕하세요, Python을 주 언어로 사용하는 웹 백엔드 개발자입니다. Flask 기반 웹서비스를 운영하며 이슈 디버깅, 성능 개선, 서비스 안정화를 중심으로 업무를 수행했습니다. Docker 환경에서 서비스 및 ELK 스택을 구성하고 폐쇄망 환경에서의 배포 효율 개선을 수행했습니다. Celery + Redis 기반 비동기 처리, DB Migration, 쿼리 최적화를 통해 서비스 성능을 개선했습니다.

0개의 댓글