strict mode
Language/Javascript
2023. 9. 4. 19:35
strict mode란? function foo() { x = 10; } foo(); console.log(x); // ? foo함수 내에서 선언하지 않은 x 변수에 값을 할당했을때, 변수 x를 찾아야 x에 값을 할당할 수 있기때문에 자바스크립트 엔진은 x 변수가 어디에서 선언되었는지 스코프 체인을 통해 검색하기 시작한다. 먼저 foo함수 내에서 검색하는데 함수내에는 x 변수의 선언이 없으므로 검색에 실패할 것이고, 상위 스코프에서 x변수의 선언을 검색할 것이다. 어디에도 x 변수의 선언이 없으면 ReferenceError를 발생시킬 것 같지만 자바스크립트 엔진은 암묵적으로 전역 객체에 x 프로퍼티를 동적 생성한다. 이때 전역 객체의 x 프로퍼티는 마치 전역 변수처럼 사용할 수 있다. 이러한 현상을 암묵..