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);
```
```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 객체 사용 시 주의점을 보여줍니다:
1) Boolean 객체는 항상 truthy: `new Boolean(false)`로 생성된 객체는 내부 값이 `false`여도 객체 자체는 truthy입니다. 따라서 `if (a)`는 `true`가 됩니다.
2) 객체 비교는 항상 false: JavaScript에서 두 객체를 비교하면 같은 참조를 가리키지 않는 한 항상 `false`입니다. `a`와 `b`는 서로 다른 객체입니다.
1) Boolean 객체는 항상 truthy: `new Boolean(false)`로 생성된 객체는 내부 값이 `false`여도 객체 자체는 truthy입니다. 따라서 `if (a)`는 `true`가 됩니다.
2) 객체 비교는 항상 false: JavaScript에서 두 객체를 비교하면 같은 참조를 가리키지 않는 한 항상 `false`입니다. `a`와 `b`는 서로 다른 객체입니다.
💡 학습 팁
이 문제를 포함한 JavaScript 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.