모듈 내 javasciprt 파일에 use strict라는 소스가 곳곳에 보였다. 이전 회사에서는 사용해본 적이 없어 궁금증이 생겼다. use strict에 대해 찾아본 내용들을 이 포스팅에 담고자 한다.
그럼.. 레츠기릿~~!
ES5부터 기존 기능 중 일부가 변경되었다. 기존 모듈과의 호환성을 위해 use stict라는 지시자를 활용하여 해당 지시자 포함시에만 변경 사항을 활성화 되도록 하였다.
자바스크립트 언어의 문법을 더 엄격히 적용하여 최적화 ㅈ가업에 문제를 일으킬 수 있는 명시적인 에러를 발생시킨다.
- 전역 변수를 허용하지 않음. 사용시 에러 발생
- 변수 선언 및 사용시 var 누락되면 오류 발생
- 값 할당 실패 시 오류 발생
- 삭제할 수 없는 속성 삭제 시도 시 오류 발생
- 읽기 전용 속성을 쓰기 시도했을 때 오류 발생
- 객체 리터럴의 모든 속성 이름은 고유해야 한다.
- 함수 파라미터는 고유해야 한다.
- 8진수 구문과 8진수 이스케이프 표현 금지
- with 키워드 금지
JS 최상단에 use stict라고 아래와 같이 적는다.
"use strict";
최상단에 위치 하지 않는 경우 stict 모드가 비활성화될 수 있다.
use strict 위에는 주석만 사용가능하다.
모던 자바스크립트의 경우(클래스, 모듈로 구성) use strict가 자동 적용되므로 이 경우에는 use strict 지시자를 사용하지 않아도 된다
https://ko.javascript.info/strict-mode
https://haenny.tistory.com/286
https://bonita-sy.tistory.com/entry/Strict-mode엄격-모드-use-strict-란
gif 출처
https://media.giphy.com/media/QJvwBSGaoc4eI/giphy.gif