패스잇
프론트엔드 개발 · 기초

JSX 문법에서 class 대신 className을, for 대신 htmlFor를 쓰는 이유는 무엇인가요?

힌트 · JSX가 결국 자바스크립트라는 점과 일부 단어가 가진 언어적 의미의 관점에서 접근하세요.

HTML 속성JavaScript 예약어충돌 방지React

모범답안

JSX에서 class 대신 className을, for 대신 htmlFor를 사용하는 이유는 JSX가 결국 자바스크립트 문법을 확장한 것이기 때문입니다.

class는 자바스크립트의 예약어이기 때문에, JSX에서 HTML의 class 속성을 그대로 사용하면 자바스크립트 문법과 충돌이 발생합니다. 이를 방지하기 위해 React는 className이라는 다른 이름을 사용하도록 했습니다.

마찬가지로 for도 자바스크립트에서 반복문 등에 사용되는 예약어입니다. 따라서 HTML의 for 속성을 JSX에서 사용하려면 htmlFor라는 이름을 사용해야 합니다.

이러한 규칙 덕분에 JSX는 자바스크립트 코드 안에서 HTML과 유사한 구조를 안전하게 사용할 수 있게 됩니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 React 면접 질문

← React 면접 질문 전체 보기