몽땅뚝딱 개발자

[Javascript/ES6+] let 변수와 this / 변수의 공유 본문

Development/Javascript

[Javascript/ES6+] let 변수와 this / 변수의 공유

레오나르도 다빈츠 2021. 7. 7. 21:06

출처

 

자바스크립트 ES6+ 기본 - 인프런 | 강의

4개 강좌로 구성된 자바스크립트 바이블 강좌의 3번째 강좌입니다. 자바스크립트 스펙의 95% 이상을 다룹니다. ES6+ 환경에서 새로운 패러다임의 프로그램을 개발할 수 있습니다., 자바스크립트

www.inflearn.com

 


 

🚀 let 변수와 this

 

◽ let 변수와 this

글로벌 오브젝트에서 글로벌 변수로 선언된 let 변수를 this로 참조할 수 없다.

// var는 window object에 설정되지만, let은 설정되지 않는다.
var music = "음악";
let sports = "축구";
console.log(this.music, this.sports);

[실행결과]

음악, undefined


🚀 다수의 js 파일 사용 시 let의 사용

 

모든 js파일에서 글로벌 오브젝트에 작성한 var 변수와 let 변수를 공유할 수 있다.

그러나 블록 안에 작성하면 공유하지 않는다.

{
    // 이것은 block 안에 작성하여 공유되지 않는다.
    let global = "block의 let 변수";
}

 

 

◽ 스코프 유형

Block, Local, Script, Global 4가지이다.

(개념적, 구조적으로 정리해보기!)

 

 

◽ 왜 공유되지 않을까?

let 변수는 [Global] 오브젝트가 아닌 *[Script]에 설정되기 때문이다.

* Script는 스펙에 정의된 이름으로, 브라우저마다 달리 적용되므로 Global이 아닌 이 곳에 정의하도록 정해져있다.



◽ 정리

1) 글로벌 오브젝트에 작성

- var 변수: [Window]에 설정되고 공유된다.

- let 변수: [Script]에 설정되고 공유된다.

- { let 변수 }: [Block]에 설정되고 공유되지 않는다. 글로벌 오브젝트의 로컬변수가 된다.

 

2) 함수에 작성

- [Local]: var 변수, let 변수

- [Block]: { let 변수 }

 

 

Comments