strict mode는 자바스크립트 언어의 문법을 좀 더 엄격히 적용하여 오류를 발생 시킬 가능성이 높거나 자바스크립트 엔진의 최적화 작업에 문제를 일으 킬 수 있는 코드에 대해 명시적인 에러를 발생 시킨다.
ESlint 같은 린트 도구를 썼다.
'use strict'
function foo(){
x = 10; // ReferenceError : x is not defined
}
전역에 적용한 strict mode는 스크립트 단위로 적용된다.
외부 서드파티 라이브러리를 사용하는 경우! 라이브러리가 non-strict mode 인 경우도 있다.
즉시 실행 함수로 스크립트 전체를 감싸서 스코프를 구분하고 즉시 실행 함수의 선두에 strict mode를 적용한다.
// 즉시 실행 함수의 선두에 strict mode 적용
(function(){
'use strict'
// Do something
}())