strict mode

Kaydenna92·2022년 12월 8일
0

JavaScript

목록 보기
4/15

자바스크립트는 오랫동안 호환성 이슈 없이 발전해왔다.
기존의 기능을 변경하지 않으면서 새로운 기능이 추가되었고, 덕분에 기존에 작성한 코드는 절대 망가지지 않는다는 장점이 있었다.

하지만 자바스크립트 창시자들이 했던 실수나 불완전한 결정이 언어 안에 영원히 박제된다는 단점도 생겼다.

ECMAScript5(ES5)가 등장하면서 새로운 기능이 추가되고 기존 기능 중 일부가 변경되었다.
기존 기능을 변경하였기 때문에 하위 호환성 문제가 생길 가능성이 생기게 되었다.
그래서 변경사항 대부분은 ES5의 기본 모드에서는 활성화되지 않도록 설계되었다.

대신 use strict 라는 특별한 지시자를 사용해 strict mode를 활성화 했을 때만 이 변경사항이 활성화된다.

use strict

지시자 "use strict", 혹은 'use strict'은 단순한 문자열처럼 생겼다.

하지만 이 지시자가 스크립트의 최상단에 오면 스크립트 전체가 "모던한" 방식으로 동작하게 된다.

"use strict"는 반드시 최상단에 위치시켜야 한다.
그렇지 않으면 strict mode가 활성화되지 않을 수도 있다.

다음의 코드에서는 strict mode가 활성화 되지 않는다

alert("some code")
// 하단에 위치한 use strict는 스크립트 상단에 위치하지 않으므로 무시된다!
"use strict"
// 엄격 모드가 활성화 되지 않습니다.
// use strict의 위에는 주석만 사용할 수 있다.

use strict 꼭 사용해야하나?

모던 자바스크립트는 '클래스''모듈''이라는 구조를 제공한다.
이 둘을 사용하면 use strict가 자동으로 적용된다. 따라서 이 둘을 사용하고 있다면 스크립트에 "use strict"를 붙일 필요가 없다.

profile
persistently

0개의 댓글