학습 공간 개념 · 판단 · 실험

Fanta Lab

질문 34 · 실전 면접 답변

엄격 모드는 어떤 오류를 더 일찍 드러내나요?

이렇게 답해 보세요 (핵심 답변)

엄격 모드(Strict Mode)는 기존 JavaScript에서 조용히 무시되던 위험한 실수들을 명시적인 에러로 발생시키고, 엔진 최적화를 방해하는 모호한 문법을 제한하는 실행 모드입니다. 파일이나 함수 맨 위에 'use strict'를 선언해 활성화할 수 있으며, ES 모듈과 class 본문에는 별도 선언 없이도 자동으로 적용됩니다. 대표적으로 선언하지 않은 변수에 값을 대입해 실수로 전역 변수를 만드는 동작이나 읽기 전용 프로퍼티 수정 시도를 에러로 막아 주고, 객체 없이 단독 호출된 일반 함수의 this를 전역 객체 대신 undefined로 고정합니다.

함께 설명하면 좋은 이유 (꼬리질문 대비)

  1. 변수 이름에 오타가 났을 때 조용히 전역 프로퍼티가 생기는 대신 즉시 ReferenceError가 발생해 버그를 일찍 잡을 수 있습니다.
  2. obj.method()처럼 객체를 통해 호출할 때는 엄격 모드에서도 this가 기존과 동일하게 obj를 가리킵니다.

면접에서 자주 하는 실수

엄격 모드는 언어의 실행 규칙을 더 깐깐하게 적용하는 기능일 뿐, 정적 타입 검사나 보안 샌드박스 역할을 해 주는 것은 아닙니다.

원리와 예제까지 읽기

공식 참고 자료

질문 목록 출처 ↗ · 원본 34번을 바탕으로 질문과 답변을 새로 정리했습니다.

← JavaScript