20-1. strict mode란?

20-1

function foo () {
	x = 10;
}
foo();

console.log(x); // 10

⇒ 변수 선언이 없어서 콘솔로그에 ReferencError가 뜰것같지만,

자바스크립트 엔진은 전역 객체에 x 프로퍼티를 동적 생성함

⇒ 마치 전역 변수처럼 사용 가능

⇒ 이것을 암묵적 전역이라 함

암묵적 전역은 오히려 에러를 발생시키기 쉽고,

오류를 줄일 수 있는 방법으로는 두 가지가 있다.

  1. strict mode

  2. ESLint 도구 사용하기

20-2. strict mode의 적용

20-2

'use strict';

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

function foo() {
	'use strict';

	x = 10; // ReferenceError: x is not defined
}

스크린샷 2023-07-18 오후 8.49.24.png

20-3. 전역에 strict mode를 적용하는 것은 피하자