본문 바로가기

[모던JS] 007. [기본] 엄격 모드(use strict)

codeConnection 2024. 3. 25.

원문

엄격 모드란? (use strict)

자바스크립트는 호환성을 최우선시 하면서 발전해왔다.
따라서 새로운 기능을 추가할 때도 기존의 기능은 전혀 건드리지 않고 발전해왔다.
문제는 기존의 언어에서 언어 개발자의 실수 등으로 발생한 버그나 불완전한 코드도 여전히 남아있다는 것이다.

그런데 2009년 ECMAScript5(ES5)가 등장하면서부터는 기존의 기능도 수정이 이루어졌다. 따라서 하위호환성 문제가 발생하기도 했다.

하지만 그냥은 실행이 안 되고 아래의 기본형을코드의 최상단에 왔을 때만 '모던한 방식', 즉 기존의 버그까지 모두 수정한 최신의 스크립트가 작동되도록 설계하였다.

기본형

코드 최상단에 아래의 지시자를 입력한다.

"use strict";

함수 하나만 엄격모드로 실행하기

함수의 최상단에 아래의 지시자를 입력하면 해당 함수에 대해서만 엄격 모드가 적용된다. 다만 특수한 경우가 아니고서는 이렇게 사용하는 일보다는 스크립트 전체에 엄격모드를 적 용하는 경우가 많다.

function myFunction() {
    "use strict";
    // 함수 내용
}

엄격모드를 사용하는 것이 좋은가?

신기능을 이용하고 과거의 버그를 잡기 위해선 당연히 사용하는 것이 좋겠지만, use strict를 꼭 명시할 필요는 없다.

모던 자바스크립트에서는 '클래스'와 '모듈'이라는 구조가 있는데, 이것들을 사용하면 use strict가 자동을오 적용되기에 명시적으로 엄격모드를 사용할 필요는 없다.

댓글