참고: 이웅모 《모던 자바스크립트 Deep Dive》 9장

한 줄 요약

JS는 필요하면 타입을 몰래 바꾸고(암묵적), 우리가 직접 바꿀 수도 있다(명시적). && || ?? 는 논리뿐 아니라 값 선택에도 쓴다.

핵심 개념

내가 이해한 동작 원리

암묵적 변환은 편하지만 읽기 어렵고 버그를 숨긴다. 팀 코드에서는 명시적 변환 + === 가 대체로 낫다.

는 falsy면 오른쪽으로 넘어가므로 0이나 ''를 유효한 값으로 두고 싶을 때 깨진다. 그때 ?? 가 맞다.

짧은 예제 코드

console.log(String(123));
console.log(Number('12px')); // NaN
console.log(!!'hi'); // true

const input = '';
const a = input || 'default'; // 'default'
const b = input ?? 'default'; // ''

console.log(null || 'guest'); // 'guest'

헷갈리기 쉬운 포인트 / 함정

|  | vs ?? : 0 / '' / false 허용 여부가 갈린다. |
| --- | --- |

다음 장으로 이어지는 한 줄

원시 다음으로, 값을 모아 담는 객체 리터럴로 들어간다.