[JS] function 블록

반응형
반응형
  • 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는 블록 스코프가 아님
반응형

'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

댓글

Designed by JB FACTORY

loading