보다 안정적인 자바스크립트 개발 환경을 위한 Strict mode

pssw0728·2022년 2월 2일
0

strict mode란?

function foo() {
  x = 10;
}

console.log(x); // ?

선언하지 않은 변수 x에 값을 10을 할당하였는데 이때 변수 x를 찾아야 x에 값을 할당할 수 있어
자바스크립트 엔진은 변수 x가 어디세 선언되었는지 스코프 체인을 통해 검색한다.
우선 foo함수 스코프에서 검색하고 없으면 상위 스코프에서 변수 x의 선언을 검색한다.
하지만 전역 스코프에도 x의 선언이 존재하지 않기 떄문에 자바스크립트 엔진은 암묵적으로 전역 객체에 프로퍼티 x를 동적 할당하는데 이렇게 선언된 변수를 암묵적 전역 변수라고 한다.

하지만 이렇게 선언할 경우 오류를 발생시키는 원인이 될 가능성이 크기 때문에 되도록이면 var, let, const 키워드를 사용하여 변수 선언을 해야만 한다.
그래도 사람이 짠 코드라 오류가 발생할 수 밖에 없는데 이를 지원하기 위해 나온것이 es5부터 지원하는 strict mode이다.

오류를 발생시킬 가능성이 높거나 최적화 작업에 문제를 일으킬 수 잇는 코드에 대해 명시적인 에러를 발생시킨다.

strict mode의 적용

strict mode를 적용하려면 전역의 선두 또는 함수 몸체의 선두에 'use strict';를 추가한다.

// 전역에 strict mode의 적용하는 것은 바람직하지 않다!
'use strict';

function foo() {
	'use strict';//함수 선두에 위치 시켜야 한다.
 x = 10; // ReferenceError: x is not defined
 'use strict';//에러를 발생시키지 않는다.
}
foo();
profile
개발위키겸 개발관련 콘텐츠에 대한 경험을 기록하는 곳

0개의 댓글