Strict mode 란?

JavaScript에서 코드를 더 엄격한 규칙으로 실행하도록 하는 기능이다.

Strict Mode 개요

JavaScript의 Strict mode는 ES5에서 도입된 기능으로, 더 엄격한 코드 실행을 강제하여 잠재적인 오류를 방지하고 안정성을 향상시킨다.

Strict Mode 적용 방법

엄격 모드는 use strict 지시어를 사용하여 적용할 수 있다.

"use strict";

전역적으로 선언하면 스크립트 전체에 적용되며, 함수 내부에 선언하면 해당 함수에만 적용된다.

function strictFunction() {
    "use strict";
    // 해당 함수 내부에서만 Strict Mode 적용
}

Strict Mode 주요 특징

1️⃣ 암묵적 전역 변수 방지

Strict mode에서는 변수를 선언하지 않고 사용할 경우 오류가 발생한다.

// 비엄격 모드
x = 10; // 전역 변수를 암묵적으로 선언 가능

// 엄격 모드
"use strict";
y = 10; // 에러 발생: y is not defined

2️⃣ this의 기본 값 변경

Strict mode에서는 thisundefined로 설정된다.

function myFunction() {
    console.log(this);
}

// 비엄격 모드
myFunction(); // 전역 객체 (window) 출력

// 엄격 모드
"use strict";
myFunction(); // undefined 출력

3️⃣ 중복된 매개변수 사용 금지

Strict mode에서는 함수의 매개변수 이름이 중복될 경우 오류가 발생한다.

"use strict";
function sum(a, a, c) { // 에러 발생: Duplicate parameter name not allowed
    return a + b + c;
}

4️⃣ 읽기 전용 속성 삭제 불가

Object.defineProperty()configurable: false 속성을 설정한 경우, 해당 속성을 삭제할 수 없다.

"use strict";
var obj = {};
Object.defineProperty(obj, "x", { value: 10, configurable: false });
delete obj.x; // 에러 발생: Cannot delete property 'x' of #<Object>

5️⃣ 예약어 사용 제한

JavaScript에서 예약된 키워드를 변수명이나 함수명으로 사용할 수 없다.

"use strict";
var let = 10; // 에러 발생: Unexpected strict mode reserved word

연결문서

댓글남기기