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 |