JavaScript - 문제 미리보기

문제 482

hard
다음 코드에서 에러가 발생하는 이유는?
"use strict";
const obj = {};
Object.defineProperty(obj, "name", {value: "John", writable: false});
obj.name = "Jane"; // 에러 발생
A. const 객체는 수정할 수 없음
B. 읽기 전용 속성에 값을 할당하려 했음
C. Object.defineProperty 사용법이 틀림
D. "name" 속성이 예약어임

정답: B

Object.defineProperty에서 writable: false로 설정된 속성은 읽기 전용입니다. 일반 모드에서는 이런 속성에 값을 할당해도 조용히 무시되지만, 엄격한 모드에서는 에러를 발생시킵니다. 이는 개발자가 의도치 않은 동작을 쉽게 발견할 수 있게 도와줍니다.

💡 학습 팁

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