switch 문에서 에러를 내지 않고 변수를 재선언해보세요.
let x = 1;
switch (x) {
case 0:
let name;
break;
case 1:
let name; // SyntaxError for redeclaration.
break;
}
위의 코드는 에러가 발생합니다. 왜일까요?
let
키워드가 블록 스코프를 갖는데, 같은 블록 내에 중복된 이름의 식별자가 존재하기 때문입니다.- 각
let name
이 존재하는 곳을 블록으로 나눠주면, 에러가 사라집니다.- 이는 ES6(ES2015) 에서 추가된 문법입니다.
let x = 1;
switch (x) {
case 0: {
let name;
break;
}
case 1: {
let name;
break;
}
}
반응형
'자바스크립트 > 인터뷰' 카테고리의 다른 글
자바스크립트에서 URL 을 인코드하거나 디코드하는 방법에 대해서 알고 있나요? (0) | 2023.01.26 |
---|---|
자바스크립트의 TDZ (Temporal Dead Zone) 에 대해서 간단히 설명해주실 수 있나요? (0) | 2023.01.18 |
let 키워드를 var 와 비교하여 설명해보세요 (0) | 2023.01.18 |
pure function (순수 함수) 란 무엇인가요? (0) | 2023.01.18 |
Currying function (커링 함수) 이란 무엇인가요? (0) | 2023.01.18 |