JavaScript - 문제 미리보기

문제 254

hard
다음 코드에서 예상치 못한 결과가 나오는 이유는?

```javascript
let a = new Boolean(false);
let b = new Boolean(false);

if (a) {
console.log("a는 truthy입니다");
}

console.log(a == b);
console.log(a === b);
```
A. Boolean 객체는 항상 truthy이고, 두 객체는 항상 다르다
B. new Boolean은 잘못된 문법이다
C. false 값이 잘못 설정되었다
D. 비교 연산자가 잘못 사용되었다

정답: A

이 문제는 Boolean 객체 사용 시 주의점을 보여줍니다:

1) Boolean 객체는 항상 truthy: `new Boolean(false)`로 생성된 객체는 내부 값이 `false`여도 객체 자체는 truthy입니다. 따라서 `if (a)`는 `true`가 됩니다.
2) 객체 비교는 항상 false: JavaScript에서 두 객체를 비교하면 같은 참조를 가리키지 않는 한 항상 `false`입니다. `a`와 `b`는 서로 다른 객체입니다.

💡 학습 팁

이 문제를 포함한 JavaScript 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.