본문 바로가기
Javascript

JS 약식 분기문에 의한 값 할당 방법

by SeanK 2021. 11. 16.

 

 

let _start = start || 0

 

 

 

오늘 연습문제를 보다가 이런 요상한 선언 & 할당문을 보게 되었다. 

 

 

도대체 요녀석은 어떻게 이해를 하면 좋을까?

 

위와 같은 방식의 할당문을 약식 분기문에 의한 값 할당법이라고 부른다. 

 

위와 같은 방식에는 || 혹은 && 오퍼레이터를 이용하는데, 

 

이는 값이 truthy 한지 falsy 한지를 판별해 변수에 의도하는 값을 할당하기 위함이다. 

 

예제를 통해 알아보자. 

 

let _start = start || 0

 

만약 start의 값이 falsy한 값이라면 _start에는 start의 값이 들어가게 된다. 

 

이때 falsy 한 값임에 유의해야 한다.

 

즉 start가 false / 0 / '' 등의 값을 가진다면, false로 인정하고 || 등호 뒷편의 0이 _start에 할당된다. 

 

 truthy한 1를 넣는다면 _start에는 1이 할당된다. 

 

let _start = start || 1

 

이 경우에도 마찬가지다.

 

falsy한 값이 들어가면 1이 할당 되고

 

truthy한 값이 들어가면 _start에는 start값이 할당된다.

 

그렇다면 아래의 경우는 어떻게 될까?

 

let start = true;

let _start = start && 1 || 2;

 

이 경우 _start의 값은 1이 된다.

 

다소 난해하지만 아래와 같이 생각하면 이해가 쉽다.

 

let start = true;

let _start = start === true ? 1 : 2;

 

삼항 연산자와 같은 논리로,

 

strat에 truthy한 값이 들어오면 조건문에 따라 1이 할당되는 방식이다. 

 

 

 

 

 

'Javascript' 카테고리의 다른 글

JS require와 import의 차이?  (0) 2021.12.03
JS JSON  (0) 2021.11.16
JS Operator "!!" & "^="  (0) 2021.11.12
JS Linked-list & Hash table  (0) 2021.11.11
JS 매개변수 기본 값 설정하기  (0) 2021.11.10