20-1
function foo () {
x = 10;
}
foo();
console.log(x); // 10
⇒ 변수 선언이 없어서 콘솔로그에 ReferencError가 뜰것같지만,
자바스크립트 엔진은 전역 객체에 x 프로퍼티를 동적 생성함
⇒ 마치 전역 변수처럼 사용 가능
⇒ 이것을 암묵적 전역이라 함
암묵적 전역은 오히려 에러를 발생시키기 쉽고,
오류를 줄일 수 있는 방법으로는 두 가지가 있다.
strict mode
ESLint 도구 사용하기
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
}
