원래는 js의 불리언 변환이 java의 그것과 같다고 생각했습니다. 결국 우리 모두는 같은 조상을 가지고 있습니다.
function foo() {
var temp = Boolean.valueOf('');
alert(temp == false)
}
java 변수 javaBoolean은 문자열입니다. 원래는 당연히 true가 나올 줄 알았는데, 결과가 false여서 정말 답답하네요.
방금 "JavaScript에 대한 확실한 가이드"를 확인했는데 문득 아이디어가 떠올랐습니다.
다른 유형을 Boolean으로 변환하려면 Boolean(value) 또는 new Boolean(value)을 사용해야 합니다. Boolean.valueOf() 메서드는 객체에 고유하며 a가 아닙니다. Boolean 메서드의 정적 메서드에는 또 다른 중요한 점이 있습니다. 0, NaN, null, 빈 문자열 및 정의되지 않음은 false로 변환되고 false(단, "false" 문자열 포함)를 제외한 기타 기본 값은 물론 기타 값도 포함됩니다. 객체와 배열이 변환될 경우 true입니다.
이걸 보면 js에 속는 건 당연하다고 생각해야겠죠?