[JS] 엄격 모드(strict mode)

cabbage·2023년 5월 22일

JS

목록 보기
32/43
post-thumbnail

깃허브나 블로그에서 자바스크립트 코드를 볼 때 'use strict'; 이라는 코드를 이따금씩 볼 수 있었는데, 이게 무슨 역할을 하는지 궁금해졌다. 모던 자바스크립트 튜토리얼을 통해 엄격 모드에 대해 공부하였다.

등장 배경

ECMAScript5(ES5)가 등장하면서 자바스크립트에 새로운 기능이 추가되고 기존 기능 중 일부가 변경되어 하위 호환성 이슈가 발생할 수 있는 상황이 되었다. 따라서 ES5의 변경사항 대부분은 ES5의 기본 모드에서는 활성화되지 않도록 설계되었다. 그 대신 use strict 지시자를 사용해 엄격 모드를 활성화한 경우에만 ES5의 변경사항이 활성화되게 하였다.

결국 ES5의 변경사항을 활성화(엄격 모드를 적용)하려면 use strict 지시자를 사용한다.

use strict

지시자 use strcit가 자바스크립트 최상단에 위치하면 자바스크립트 전체가 '모던한' 방식으로 동작한다.

'use strict';

// 코드가 모던한 방식으로 동작한다.
...

지시자 use strict가 함수 본문 맨 앞에 위치하면 해당 함수만 엄격 모드로 실행된다.

주의할 점

엄격 모드를 적용하려면 지시자 use strict는 반드시 자바스크립트 최상단에 위치해야 한다. 그렇지 않으면 엄격 모드가 활성화되지 않을 수 있다.

alert('dkfdkfj');
// 'use strict'는 자바스크립트 최상단에 위치하지 않으므로 무시된다.

'use strict';
// 엄격 모드가 활성화되지 않음

엄격 모드가 적용되면 다시 되돌릴 방법이 없다.

자바스크립트 엔진을 이전 방식으로 되돌리는 지시자는 존재하지 않는다.

'use strict'를 꼭 사용해야 할까

모던 자바스크립트의 기능인 '클래스'와 '모듈'을 사용하면 use strict가 자동으로 적용된다.

클래스와 모듈을 사용해 코드를 작성한다면 use strict를 생략할 수 있다.

참고

profile
캐비지 개발 블로그입니다. :)

0개의 댓글