오류를 줄여 안정적인 코드를 생산하기 위해서 잠재적인 오류를 발생시키기 어려운 개발 환경을 만드는 것이 좋다. 이를 지원하기 위한 것이 strict mode(엄격 모드)다.
strict mode는 자바스크립트 언어의 문법을 좀 더 엄격히 적용하여 오류를 발생시킬 가능성이 높거나 자바스크립트 엔진의 최적화 작업에 문제를 일으킬 수 있는 코드에 대해 명시적인 에러를 발생시킨다.
ESLint 같은 린트 도구를 사용해도 strict mode와 유사한 효과를 얻을 수 있다. 린트 도구는 정적 분석(static analysis) 기능을 통해 소스 코드를 실행하기 전에 소스 코드를 스캔하여 문법적 오류뿐만이 아니라 잠재적 오류까지 찾아내고 오류의 원인을 리포팅해주는 유용한 도구다.
참고로 ES6에서 도입된 클래스와 모듈은 기본적으로 strict mode가 적용된다.
strict mode를 적용하려면 전역의 선두 또는 함수 몸체의 선두에 'use strict';를 추가한다.
즉, strict 모드는 즉시 실행 함수로 감싼 스크립트 안뒤로 적용하는 것이 바람직하다.