AND, OR, NOT과 null 병합 연산자를 사용합니다.
&&는 첫 falsy 또는 마지막 값, ||는 첫 truthy 값, !는 boolean 반전 결과를 반환합니다. ??는 null과 undefined일 때만 대체값을 사용해 0과 빈 문자열을 보존합니다.
savedCount가 0이라는 같은 조건에서 두 연산자의 답이 갈립니다. ||는 0을 falsy로 보고 오른쪽의 10을 돌려주지만, ??는 0이 null도 undefined도 아니라서 0을 그대로 둡니다. 세 번째 줄은 name이 빈 문자열이라 ||가 익명을 골랐는데, 빈 이름을 이름 없음으로 다루려는 의도라면 이 자리에서는 ||가 맞는 선택입니다.
??는 ||나 &&와 괄호 없이 한 식에 섞어 쓸 수 없습니다. a || b ?? c는 문법 오류이고, (a || b) ?? c처럼 어느 쪽을 먼저 계산할지 괄호로 밝혀야 합니다. 또 &&와 ||만 섞이면 &&가 먼저 계산되어 a || b && c는 a || (b && c)로 읽힙니다.
||를 기본값 처리에 쓰면 유효한 0과 빈 문자열도 대체될 수 있습니다.
직접 바꿔보세요null, false에 대해 ||와 ?? 결과를 비교하세요.