이를 실행한 결과는 다음과 같다.
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도 동일하다. 전역 변수를 생성하지만 전역 변수는 전역 객체의 속성이 아니다.
이러한 전역 변수는 전역 객체의 속성이 아니더라도 어디에서나 접근할 수 있으므로 전역 변수를 피하지 않아도 된다는 의미는 아니다. 그렇다면 전역 객체의 속성이 아닌 것이 유용한 이유는 무엇일까?