Strict Mode (엄격 모드)
Strict Mode (엄격 모드)는 자바스크립트의 기존의 조용히 넘어가던 실수를 에러로 발생시켜, 더 안전하고 예측 가능한 코드를 작성할 수 있게 해주는 모드입니다.
스크립트나 함수의 최상단에 "use strict";를 선언하면 발동되며, 선언되지 않은 변수에 값을 할당하거나, 삭제할 수 없는 프로퍼티를 삭제하려 할 때 즉시 에러를 뱉어냅니다. 이는 엔진의 최적화 처리도 도와 실행 속도가 빨라지는 장점도 있습니다.
<script>
// "use strict"를 스크립트 최상단이나 함수 내부에 선언하여 사용합니다.
"use strict";
console.log("=== Strict Mode 활성화 ===");
try {
// 1. 선언되지 않은 변수에 할당하면 에러 발생
mistakeVar = 100;
} catch(e) {
console.error("1. 에러 감지:", e.message);
// ReferenceError: mistakeVar is not defined
}
try {
// 2. 삭제할 수 없는 프로퍼티 삭제 시도 시 에러 발생
delete Object.prototype;
} catch(e) {
console.error("2. 에러 감지:", e.message);
// TypeError: Cannot delete property 'prototype' of function Object()
}
// 3. 함수의 매개변수 이름 중복 불가
// function sum(a, a, c) { return a + a + c; } // SyntaxError 발생
console.log("현대 JavaScript(특히 ES 모듈과 Class 내부)는 기본적으로 Strict Mode로 동작합니다.");
</script>