몽땅뚝딱 개발자

[Javascript/ES6+] 블록 스코프 유형 본문

Development/Javascript

[Javascript/ES6+] 블록 스코프 유형

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

출처

 

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

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

www.inflearn.com

 


 

🚀 블록 스코프 유형

◽ 유형

1) function 블록

2) try-catch 블록

3) switch-case 블록

 

 

◽ function 블록

- function name() {}도 블록 스코프이다.

- function 안과 밖에 같은 이름의 let 변수를 선언할 수 있다.

- function 밖의 let 변수를 function안에서 사용가능한데 이것을 클로저라고 한다.

// let 변수로 안과 밖에서 sports를 선언했는데 각각 존재할 수 있다.
let sports = "축구";
function show() {
    let sports = "농구";
    console.log("안: ", sports);
}
show();
console.log("밖: ", sports);

[실행결과]

안: 농구

밖: 축구



 

◽ try-catch 블록

- try-catch도 블록 스코프이다.

- 블록의 기준은 try 블록{} 기준이다.

[코드 1]
let sports = "축구";
try {
    let sports = "농구";
    console.log("안: ", sports);
} catch(e) {};
console.log("밖: ", sports);

[실행결과]

안: 농구

밖: 축구

 

[코드 2]
let sports = "축구";
try {
    let sports = "농구";
    console.log("안: ", sports);
    abc = error;
} catch(e) {
    // catch에서는 try 밖의 변수를 사용한다.
    console.log("catch: ", sports);
};
console.log("밖: ", sports);

[실행결과]

안: 농구

catch: 축구

밖: 축구

 

 

◽ switch-case 블록

- switch문도 블록 스코프이다.

- switch 블록 기준으로 같은 이름의 let 변수를 작성할 수 없다.

- case, default는 블록 스코프가 아니다.

 

 

Comments