var와 const의 차이?

미해결질문
류시명 프로필
const a = 10;
const obj = {
  a: 20,
  b() {
    console.log(this.a); // this === obj

    function c() {
      console.log(a); // 10
      console.log(this); // window
      console.log(this.a); // undefined
    }
    c();
  }
}

obj.b();

위 코드에서 function c() 내부의 console.log(this.a)가 undefined를 출력하는 이유가 뭘까요?

전역공간에서 a를 var로 선언하면 10이 나오는데, const로 선언하면 undefined가 나오네요.

어떤 원리인지 궁금합니다. 

+ 좋은 강의 정말 감사드립니다! 덕분에 JS를 보는 눈이 확 트인 것 같아요.

정재남 프로필
정재남 2달 전

본 강의는 ES5 하위의 자바스크립트 코어를 다루는 강의입니다.
const, let은 ES6에서 새로 도입된 것이라서 강의 범위에서 벗어납니다.
또한 생각보다 많은 내용을 다뤄야 하기 때문에 여기서 몇 마디 문장으로 간단히 설명드릴 수는 없어요.
나아가 다른 강의(https://www.inflearn.com/course/ecmascript-6-flow)및
교재(http://www.yes24.com/Product/Goods/78586788)에 이미 포함된 내용이기도 해요.

"var vs const" 로 구글링하시면 만족스러운 답을 찾으실 수 있으리라 생각해요.

류시명 프로필
류시명 2달 전

감사합니다! 잘 찾아볼게요

지식공유자 되기
많은 사람들에게 배움의 기회를 주고,
경제적 보상을 받아보세요.
지식공유참여
기업 교육을 위한 인프런
“인프런 비즈니스” 를 통해 모든 팀원이 인프런의 강의들을
자유롭게 학습하는 환경을 제공하세요.
인프런 비즈니스