JavaScript - 문제 미리보기
문제 657
hard
다음 코드에서 C, D, E의 실행 결과는?
```javascript
class Temperature {
constructor(celsius) {
this._celsius = celsius;
}
// A
get fahrenheit() {
return this._celsius * 9/5 + 32;
}
// B
set fahrenheit(value) {
this._celsius = (value - 32) * 5/9;
}
}
const temp = new Temperature(25);
console.log(temp.fahrenheit); // C
temp.fahrenheit = 86; // D
console.log(temp._celsius); // E
```
정답: A
1) C: `77` - getter가 실행되어 섭씨 25도를 화씨로 변환: 25 × 9/5 + 32 = 77
2) D: setter 실행됨 - `temp.fahrenheit = 86`는 setter를 호출하여 화씨 86도를 섭씨로 변환하여 `_celsius`에 저장: (86 - 32) × 5/9 = 30
3) E: `30` - setter에 의해 변경된 값이 출력됨
중요한 개념들:
1) getter는 메서드이지만 속성처럼 괄호 없이 접근 (`temp.fahrenheit`)
2) setter도 메서드이지만 할당 연산자로 사용 (`temp.fahrenheit = 86`)
3) 언더스코어(`_`)는 private 속성임을 나타내는 관례 (실제로는 접근 가능)
4) getter/setter 이름은 실제 속성 이름과 달라야 함
💡 학습 팁
이 문제를 포함한 JavaScript 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.