참과 거짓을 나타내는 boolean 값과 변환을 배웁니다.
boolean은 true와 false 두 값만 가집니다. Boolean(value)은 값의 truthy/falsy를 확인하며 false, 0, 빈 문자열, null, undefined, NaN은 falsy입니다.
각 줄의 왼쪽은 JSON.stringify로 만든 값의 모습이라 빈 문자열이 따옴표 두 개로, 배열이 대괄호로 보입니다. 오른쪽의 Boolean 결과에서 눈여겨볼 줄은 마지막의 [] → true입니다. 빈 배열은 요소가 없어도 객체이고, 객체는 내용과 상관없이 모두 truthy로 변환됩니다.
Boolean(value) 대신 !!value로 쓰기도 합니다. 첫 번째 !가 값을 boolean으로 바꿔 뒤집고 두 번째 !가 다시 뒤집어 같은 결과를 냅니다. 반면 new Boolean(false)는 원시값이 아니라 객체를 만들기 때문에 if 조건에서 truthy로 취급되므로 쓰지 않습니다.
문자열 'false'는 내용이 있는 문자열이라 true로 변환됩니다.
직접 바꿔보세요undefined와 NaN을 추가해 결과를 확인하세요.