Strict mode란??

strict mode는 자바스크립트 언어의 문법을 좀 더 엄격히 적용하여 오류를 발생 시킬 가능성이 높거나 자바스크립트 엔진의 최적화 작업에 문제를 일으 킬 수 있는 코드에 대해 명시적인 에러를 발생 시킨다.

ESlint 같은 린트 도구를 썼다.

Strict mode의 적용

'use strict'

function foo(){
	x = 10; // ReferenceError : x is not defined
}

전역에 strict mode를 적용하는 것은 피하자

전역에 적용한 strict mode는 스크립트 단위로 적용된다.

외부 서드파티 라이브러리를 사용하는 경우! 라이브러리가 non-strict mode 인 경우도 있다.

즉시 실행 함수로 스크립트 전체를 감싸서 스코프를 구분하고 즉시 실행 함수의 선두에 strict mode를 적용한다.

// 즉시 실행 함수의 선두에 strict mode 적용
(function(){
	'use strict'

	// Do something

}())