예전에 본 문제에서 입력되는 값이 falsy값인지 여부를 리턴하는 간단한 문제가 있었는데, 레퍼런스 코드를 보니 훨씬 간단하게 구하는 메소드가 있어서 mdn을 참고하여 정리해본다.
if문을 보면 (Boolean(anything)) 어떠한 값이든 모두 불리언값으로 변환 -> true, false 값으로 변환해주며
false 일경우 -> true를, true값일 경우 false를 반환하고 있다.
function falsy(anything) {
if(Boolean(anything) === false) {
return true;
} return false;
}
Boolean() 메소드는 Boolean값으로 타입을 변환하게 해준다. 값을 true or false로 변환한다.
Boolean()가 실행된 기본값은 true이며, !Boolean()은 false 즉 falsy한 값이 된다.
값이 없거나 falsy한 값이 들어온다면 Boolean 객체의 초기값은 false가 됩니다.
문자열 "false"를 포함한 그 외 모든 다른 값은 초기값을 true로 설정합니다.
new Boolean : new 생성자를 사용하여 Boolean 인스턴스를 생성한다. 값을 true or false로 변환한다.
var x = Boolean(expression);
var x = new Boolean(expression); // 사용하지 말것
값이 undefined, null이 아닌 모든 객체는 조건문에서 true로 계산됩니다. 이는 값이 false인 Boolean 객체도 포함합니다.
즉 아래 if 문의 조건은 참입니다.
var x = new Boolean(false); // true
if (x) {
// 이 코드는 실행됨
}
그러나 원시 Boolean 값에는 적용되지 않습니다. 따라서 아래 if 문의 조건은 거짓입니다.
var x = false; // false
if (x) {
// 이 코드는 실행되지 않음
}
출처
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Boolean