반응형
judahhh
좋게 생각하면 좋게 흘러간다!
judahhh
전체 방문자
오늘
어제
  • 분류 전체보기 (90)
    • git (2)
    • Algorithm (39)
    • Computer Science (8)
    • TIL (8)
    • FrontEnd (3)
      • React (8)
      • Typescript (0)
      • Javascript (13)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 자바스크립트 배열 함수
  • 오블완
  • branch 이동
  • 자바스크립트
  • 주니어 개발자
  • 티스토리챌린지
  • branch 삭제
  • git branch
  • 프론트엔드 개발자
  • 자바스크립트 배열 메소드
  • git branch 명령어
  • branch 생성
  • 이직
  • branch 조회

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
judahhh

좋게 생각하면 좋게 흘러간다!

FrontEnd/Javascript

[JS] 단축평가 ( 논리합 연산자 ||, 논리곱 연산자&& )

2023. 4. 5. 19:17
728x90

 

- 단축 평가란?

논리합 연산자인 || 와 논리곱 연산자인 && 는 왼쪽부터 오른쪽으로 평가를 진행한다. 

평가결과가 나오면 끝까지 진행하지 않고 결과를 반환하는 것을 단축평가라 한다. 

피연산자를 그대로 반환 (타입 변환하지 않음) 하는 것이 특징!

 

 

 

1. 논리합( || ) 연산자 단축평가

둘중 하나만 true 이면 true로 평가되므로 왼쪽 피연산자가 true이면 바로 왼쪽 피연산자를 그대로 반환한다. 

문자열의 경우 빈 문자열이 아닌 경우는 모두 true로 평가된다

"something" || false;  // "something"

"something" || true;  // "something"

왼쪽 피연산자가 false 인 경우 오른쪽 피연산자를 그대로 반환한다.

false || "something";  // "something" (오른쪽 값 반환)

false || false;  // false (오른쪽 값 반환)

 

 

 

2. 논리곱 ( && ) 연산자 단축평가

둘다 true 여야만 true로 평가되므로 왼쪽 피연산자가 false 이면 바로 false 로 평가된다. 

 

왼쪽 피연산자가 false인 경우는 오른쪽이 무엇이든지 간에(볼 것도 없다) 왼쪽 피연산자를 반환한다. 

false && "something"; // false

**왼쪽이 null일 경우도 마찬가지로 오른쪽을 볼 것도 없이 null로 반환된다. (null도 false로 평가되므로!)

null && "something";  // null

 

왼쪽 피연산자가 true일 경우에는 오른쪽 값을 그대로 반환한다. 

"something" && true; // true

"something" && false; // false

 

 

이렇게 단축평가에 대해서 예시를 통해 알아봤는데 어디에 사용해야 할까?

 

- 단축평가  실사용 예시

1. 단축평가를 통해 데이터의 null 과 undefined를 확인할 수 있다.

const userData = null;

const Name = userData.name;  // TypeError: Cannot read property 'name' of null

const Name = userData && userData.name; //에러 발생하지 않음

console.log(Name) //null

- 단축평가를 사용하지 않은 경우 : null로 선언된 변수의 프로퍼티를 참조하려고 하니 에러 발생

- 단축평가를 사용한 경우 : userData가 null이면 이면 false로 평가되므로 오른쪽은 볼 것도 없이 왼쪽 값이 할당된다.

 

 

2. 기본값 설정

let response = '';  // 응답받은 값

let myResult = response || 'default';

console.log(myResult);  // 'default'

- 값이 아무것도 없을 경우 단축평가를 통해 기본값을 할당해줄 수 있다. 

 

 

3. if 문 대신에 변수에 값을 할당 가능

let condition = true;
let result = '';

if(condition==true) result='참입니다'// if문으로 변수에 값 할당

result = condition && '참';  //  단축평가 사용하여 변수에 값 할당

console.log(result);  // '참'

condition 값이 true이면 오른쪽 값을 그대로 할당,

condition 값이 false이면 오른쪽 값을 볼 것도 없이 왼쪽 값을 그대로 할당

728x90
    'FrontEnd/Javascript' 카테고리의 다른 글
    • [JS] 옵셔널 체이닝(Optional chaining) 연산자 - 객체에 안전하게 접근하기
    • [JS] 자바스크립트의 숫자 타입
    • [JS] var, let, const 와 호이스팅(Hoisting)
    • [JS] 모던 자바스크립트 Deep Dive 7장 - 연산자
    judahhh
    judahhh
    프론트엔드 개발자의 이모저모

    티스토리툴바