minstudio

Strict Mode (엄격 모드)

Strict Mode (엄격 모드)는 자바스크립트의 기존의 조용히 넘어가던 실수를 에러로 발생시켜, 더 안전하고 예측 가능한 코드를 작성할 수 있게 해주는 모드입니다.

스크립트나 함수의 최상단에 "use strict";를 선언하면 발동되며, 선언되지 않은 변수에 값을 할당하거나, 삭제할 수 없는 프로퍼티를 삭제하려 할 때 즉시 에러를 뱉어냅니다. 이는 엔진의 최적화 처리도 도와 실행 속도가 빨라지는 장점도 있습니다.

🛡️ Strict Mode 활성화 비교 Sloppy Mode (일반) x = 10; // var 없이 선언 에러 없음! 전역 객체(window)의 속성이 됨 -> 메모리 누수 위험 💥 Strict Mode (엄격) "use strict"; x = 10; ReferenceError 발생! 버그를 사전에 즉시 차단 🛡️
<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>
실행 결과
Strict Mode (엄격 모드) | Minstudio