자바스크립트 엄격 모드(Strict Mode)란 무엇인가?
엄격 모드(Strict Mode)는 ES5(ECMAScript 5)에서 도입된 기능으로, 프로그램 전체 또는 특정 함수를 더욱 '엄격한' 실행 환경에 두는 방식입니다.
이러한 엄격한 문맥 안에서는 일부 위험하거나 비권장되는 동작들이 차단되며, 기존에는 조용히 통과되던 오류들이 예외(Exception)로 발생합니다. 이를 통해 개발자는 코드의 잠재적 문제를 더 빠르고 명확하게 파악할 수 있습니다.
엄격 모드의 주요 특징
선언되지 않은 변수 할당 금지: 변수를 선언하지 않고 곧바로 값을 할당하면 오류가 발생합니다. 예를 들어 'foo'라는 변수를 정의하지 않은 상태에서
foo = "bar";를 실행하면 실패합니다.eval 사용 제한: 엄격 모드에서는 eval을 사용할 수 없습니다.
arguments 객체 재할당 불가: 함수 내부에서 arguments 배열의 값을 다시 할당하는 것이 허용되지 않습니다.
with문 사용 금지: 스코프 체인을 복잡하게 만드는 with 문은 사용이 금지됩니다.
엄격 모드를 활성화하는 방법
엄격 모드를 적용하는 방법은 매우 간단합니다. 문자열 리터럴 "use strict";를 선언하기만 하면 됩니다.
1. 스크립트 전체에 적용
스크립트 최상단에 아래 한 줄을 추가하면 해당 스크립트 전체가 엄격 모드로 동작합니다.
"use strict";
2. 특정 함수 내부에만 적용
스크립트 전체가 아니라 특정 함수에만 엄격 모드를 적용하고 싶다면, 해당 함수의 시작 부분에 선언하면 됩니다.
function strictFunc() {
"use strict";
// 나머지 함수 코드
}마무리
엄격 모드는 실수로 인한 버그를 사전에 방지하고, 자바스크립트의 느슨한 문법으로 인해 발생할 수 있는 문제를 줄여주는 강력한 도구입니다. 새로운 프로젝트에서는 항상 엄격 모드를 활성화하여 더 안전하고 예측 가능한 코드를 작성하는 것이 좋습니다.