자바스크립트 논리 연산자 설명: ||, &&, !

2020. 10. 5. 17:47·개발/JavaScript

자바스크립트에는 ||(or), &&(and), !(not) 세 가지의 논리 연산자가 존재한다. 명칭은 논리 연산자지만, 불리언 뿐만이 아닌 모든 데이터 유형에 사용할 수 있다. 참고로 && 연산자가 || 연산자보다 우선 순위가 높아 먼저 실행된다.

|| (OR)

자바스크립트에서 || 연산자는 비교하는 값 중 최초의 truthy 값을 찾아 리턴한다.

result = value1 || value2 || value3;

위의 예시에서 || 연산자는 왼쪽부터 오른쪽으로 차례대로 연산을 수행하며, 결과가 true 일 경우 연산을 멈추고 해당 값을 리턴한다. 만약, 모든 값이 false 일 경우, 가장 마지막 값을 리턴한다.

 

다음은 MDN에서 소개하고 있는 || 연산자 예시다.

o1 = true || true // true
o2 = false || true // true
o3 = true || false // true
o4 = false || (3 == 4) // false
o5 = 'Cat' || 'Dog' // "Cat"
o6 = false || 'Cat' // "Cat"
o7 = '' || false // false
o8 = false || '' // ""

&& (AND)

자바스크립트에서 && 연산자는 비교하는 값 중 최초의 falsy 값을 찾아 리턴한다.

result = value1 && value2 && value3;

위의 예시에서 && 연산자는 왼쪽부터 오른쪽으로 차례대로 연산을 수행하며, 결과가 false 일 경우 연산을 멈추고 해당 값을 리턴한다. 만약, 모든 값이 true 일 경우, 가장 마지막 값을 리턴한다.

 

다음은 MDN에서 소개하고 있는 && 연산자 예시다.

a1 = true && true // true
a2 = true && false // false
a3 = false && true // false
a4 = 'Cat' && 'Dog' // "Dog"
a5 = false && 'Cat' // false
a6 = 'Cat' && false // false
a7 = '' && false // ""
a8 = false && '' // false

! (NOT)

자바스크립트에서 ! 연산자는 불리언 타입을 반대로 전환하는 역할을 한다. 즉, true 는 false 가 되고, false 는 true 가 된다.

n1 = !true // false
n2 = !false // true
n3 = !'' // true
n4 = !'Cat' // false

! 를 두 번 사용하게 될 경우, 기존 불리언 값을 리턴한다.

n1 = !!true // true
n2 = !!{} // true
n3 = !!"" // false

마치며

연산자 || 와 && 는 유사한 방식으로 작동하며, 차이점이라면 || 는 최초의 truthy 값을 리턴하고, && 는 최초의 falsy 값을 리턴한다는 것이다. 해당 연산에 부합하는 값이 없을 경우, 모두 가장 마지막 값을 리턴한다. ! 연산자는 불리언 타입을 반대로 전환하며, 이를 이를 두 번 사용 !! 할 경우, 기존 불리언 타입을 리턴한다.

 

참고 자료

  • MDN, 논리 연산자
  • Logical Operators

'개발 > JavaScript' 카테고리의 다른 글

자바스크립트 for... in 구문 정리  (0) 2020.10.06
자바스크립트 기본 개념 공부 내용 정리  (0) 2020.06.25
자바스크립트 호이스팅이란?  (0) 2020.06.23
'개발/JavaScript' 카테고리의 다른 글
  • 자바스크립트 값, 표현식, 구문, 리터럴 의미 설명
  • 자바스크립트 for... in 구문 정리
  • 자바스크립트 기본 개념 공부 내용 정리
  • 자바스크립트 호이스팅이란?
휘Hwi
휘Hwi
여행, 사진, 개발, 책 이야기를 기록하는 여행자 휘의 블로그 𓂍
  • 휘Hwi
    휘: 끝나지 않은 이야기
    휘Hwi
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • 기록
        • 일상 에세이
        • 인사이트
        • 투자와 재테크
        • 코인 이야기
        • 아카이빙
        • 집무실 레터
        • 사랑에 대하여
        • 번역 이야기(完)
        • 프리랜서 일지(完)
      • 여행
        • 🌎 세계 여행기 S1 (完)
        • 🌊 삼삼한 여행기 (完)
        • 🚶 온더로드
        • 🇯🇵 일본
        • 🏝️ 발리
        • 🇻🇳 베트남
        • 🇱🇰 스리랑카
        • 🇮🇳 인도
        • 🇹🇭 태국
        • 🇸🇬 싱가포르
        • 🇦🇺 호주
        • 🇭🇰 홍콩
        • 🇰🇷 한국
        • 🍚 여행자의 한 끼
        • ℹ️ 여행 정보
      • 사진
        • 사진가
        • 사진 이론과 생각
        • 사진 관련 정보
      • 영상
        • 파이널컷 모션 공부
        • 고프로 GoPro
        • 영상 관련 정보
      • 책
        • 책 읽고 쓰기
      • 개발 N
        • 티스토리
        • Internet
        • HTML
        • CSS
        • JavaScript
        • Typescript
        • React
        • Node.js
        • Express
        • NestJS
        • Python
        • Django
        • MySQL
        • MongoDB
        • AWS
        • Deployment
        • Terminal
        • Git N
        • Glossaries
        • Articles
        • Projects
        • TIL;
      • 미분류
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
휘Hwi
자바스크립트 논리 연산자 설명: ||, &&, !
상단으로

티스토리툴바