Front/JS & jQuery

[js] switch 문 안에서 같은 변수명 사용

오선지♬ 2024. 11. 7. 20:31
728x90
반응형

switch 문에서 각 case 블록은 동일한 스코프를 공유하므로, 각 case 내에서 같은 변수명을 선언하면 오류가 발생합니다. 해결 방법은 크게 두 가지입니다.

  1. 변수명 변경: 각 case 블록에서 다른 변수명을 사용합니다.
  2. switch 문 외부에 변수 선언: 변수를 switch 문 밖에서 선언하고, 각 case 블록에서 값을 할당합니다.
let value = 2;
let number; // switch문 외부에서 변수 선언

switch (value) {
  case 1:
    number = 10;
    break;
  case 2:
    number = 20;
    break;
  default:
    number = 0;
    break;
}

console.log(number); // 20

 

 

let이나 const 사용 시 주의 사항

JavaScript에서는 let이나 const로 선언된 변수는 블록 스코프를 가지므로, case 블록을 중괄호 {}로 감싸면 각 case 내부에서 let 또는 const 변수를 사용할 수 있습니다.

let value = 2;

switch (value) {
  case 1: {
    let number = 10;
    console.log(number);
    break;
  }
  case 2: {
    let number = 20;
    console.log(number);
    break;
  }
  default: {
    let number = 0;
    console.log(number);
    break;
  }
}
// 각 case 블록에서 number 변수를 독립적으로 선언할 수 있음
728x90
반응형