[JS] function 블록
- Language
- 2023. 5. 23.
반응형
반응형
- function name(){} 도 블록 스코프
- function 안과 밖에
- 같은 이름의 let 변수 선언 가능
- 스코프가 다르기 때문
-
let sprt = "야구"; function show(){ let sprt = "축구"; log("안::", sprt); //축구 } show(); log("밖::", sprt); // 야구
- function 밖의 let 변수를
- function안에서 사용 가능(클로저)
-
let sprt = "야구"; function show() { log(sprt); // 함수 안에서 sprt 를 찾으려고 함 => 못찾으니 밖에서 변수를 찾음 => 클로저라 함 }; show(); // 야구
- try-catch 문도 블록 스코프
- try 블록{} 기준으로 안과 밖에 같은 이름의 let 변수 선언 가능
-
let sprt = "축구"; try { let sprt = "농구"; log("안::", sprt); } catch(e) {}; log("밖::", sprt);
- catch() 에서 try 밖의 변수 사용
-
let sprt = "축구" try { let sprt = "농구"; log("안::", sprt); // 농구 abc = error; } catch(e) { log("catch::", sprt); // 축구 }; log("밖::", sprt); // 축구
- switch-case
- switch문도 블록 스코프
- switch 블록 기준으로
- 같은 이름의 let 변수 작성 불가
-
let item = 1; switch (item) { case1: let sprt; break; case2: let sprt; // switch블록 안에서 let을 사용하여 선언한 변수가 있는데, 다시 let을 사용하여 변수를 선언하므로 에러가 발생 => 주석 처리 해야함 => 실행 에러가 아닌, 컴파일 에러 default: log(sprt); };
-
- case, default는 블록 스코프가 아님
- 같은 이름의 let 변수 작성 불가
반응형
'Language' 카테고리의 다른 글
[Java] 오버로딩 (0) | 2023.06.01 |
---|---|
[JS] Array Destructuring (0) | 2023.05.25 |
[JS] 오브젝트, 인스턴스 (0) | 2023.05.23 |
[JS] Javascript 스펙 (0) | 2023.05.23 |
@Node.js 문제 해결 (0) | 2022.11.17 |