더북(TheBook)

이를 실행한 결과는 다음과 같다.

answer == 42
this.answer == 42
has property? true

이제 let을 사용해 보자(새 창에서).

let answer = 42;
console.log("answer == " + answer);
console.log("this.answer == " + this.answer);
console.log("has property? " + ("answer" in this));

이번에는 다음과 같은 결과를 얻을 수 있다.

answer == 42
this.answer == undefined
has property? false

answer는 더 이상 전역 객체의 속성이 아니다.

const도 동일하다. 전역 변수를 생성하지만 전역 변수는 전역 객체의 속성이 아니다.

이러한 전역 변수는 전역 객체의 속성이 아니더라도 어디에서나 접근할 수 있으므로 전역 변수를 피하지 않아도 된다는 의미는 아니다. 그렇다면 전역 객체의 속성이 아닌 것이 유용한 이유는 무엇일까?

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.