JavaScript Strict Mode란?
Strict Mode(엄격 모드)는 ECMAScript 5(ES5)에서 도입된 기능으로, 프로그램 전체 또는 특정 함수를 더 엄격한 실행 환경에서 동작하도록 설정합니다.
엄격 모드에서는 기존에 조용히 통과되던 일부 동작들이 오류로 처리되고, 더 많은 예외 정보가 발생합니다. 이를 통해 잠재적인 버그를 조기에 발견하고 코드 품질과 디버깅 효율을 높일 수 있습니다.
Strict Mode의 주요 특징
선언되지 않은 변수 할당 금지: var, let, const 없이
foo = "bar";처럼 변수에 직접 값을 할당하면 오류가 발생합니다. 실수로 전역 변수를 생성하는 문제를 방지할 수 있습니다.eval 사용 제한: 엄격 모드에서 eval은 자체적인 스코프를 가지며, eval 내부에서 새로운 변수나 함수를 생성할 수 없습니다.
arguments 객체 재할당 금지: 함수 내부에서 arguments 객체의 값을 임의로 재할당할 수 없습니다.
with 문 사용 불가: 가독성과 성능에 악영향을 주는 with 문은 엄격 모드에서 허용되지 않습니다.
Strict Mode 적용 방법
스크립트 최상단에 다음 한 줄을 추가하면 스크립트 전체에 엄격 모드가 적용됩니다.
"use strict";
특정 함수에만 적용하고 싶다면 해당 함수 내부의 첫 번째 문장으로 선언하면 됩니다.
function strictFunc() {
"use strict";
// 나머지 함수 코드
}
마무리
Strict Mode는 실수로 인한 전역 변수 생성, 안전하지 않은 문법 사용 등을 사전에 차단해 주기 때문에 현대 JavaScript 개발에서 널리 권장됩니다. ES 모듈과 클래스 코드는 기본적으로 엄격 모드로 실행되므로, 일반 스크립트 작성 시에도 상단에 "use strict";를 선언하는 습관을 들이는 것이 좋습니다.