Home JavaScript의 엄격 모드 (use strict)
Post
Cancel

JavaScript의 엄격 모드 (use strict)

엄격 모드

자바스크립트는 기존의 기능을 변경하지 않으면서 새로운 기능을 추가해왔습니다.

이러한 특징 때문에 기존에 작성했던 코드는 별도의 수정 없이도 에러 없이 지속적으로 사용이 가능했습니다.
하지만 이러한 장점이 있는 반면 불완전한 문법이나 결함 역시 수정이 이루어지지 않는다는 단점이 있습니다.

그런데 새롭게 등장한 버전 ES5부터 새로운 기능이 추가되는 동시에 기존에 존재하던 기능중 일부가 변경되었습니다.
따라서 일부 하위 버전에서 호환성 문제를 방지하고자 변경된 기능이 기본 모드에서는 반영되지 않도록 설계하고
use strict라는 특별한 지시자를 사용해 엄격 모드(strict mode)를 활성화 했을 때만 이 변경사항이 활성화되도록 설계하였습니다.

use strict

지시자 “use strict“는 단순한 문자열처럼 생겼습니다. 하지만 이 지시자가 스크립트 최상단에 오면 스크립트 전체가 “모던한” 방식으로 변경되어 동작합니다.

1
2
3
4
"use strict";

// 이 라인부터 하위 모든 코드는 모던한 방식으로 실행됩니다.
...

또한 이 “use strict”는 스크립트 최상단이 아닌 함수 앞에도 위치할 수 있습니다. 이렇게 하면 오직 해당 함수만 엄격 모드로 실행됩니다.

use strict를 한번 선언하면 엄격 모드를 취소할 방법은 없습니다.

한번 엄격 모드가 적용되면 해당 스크립트에서는 엄격 모드를 해제할 수 없습니다.

반드시 “use strict”를 사용해야하는가

모던 자바스크립트에는 “클래스”와 “모듈”이라는 진일보한 구조가 제공됩니다.
이 둘을 사용하면 해당 스크립트에 use strict가 자동으로 적용됩니다. 따라서 이 둘중 한 가지라도 사용하고있다면 굳이 직접적으로 use strict를 선언해 줄 필요는 없습니다.

This post is licensed under CC BY 4.0 by the author.