반응형
Switch Case 문에서 중복 Const 선언 오류
다음 코드가 있는데 'Duplicate Declaration query_url'오류가 발생합니다.
switch(condition) {
case 'complex':
const query_url = `something`;
break;
default:
const query_url = `something`;
break;
}
query_url이 옳지 않은 두 번 선언된다는 것을 이해합니다. 그러나 나는 이것을 해결하는 방법을 모른다. 누군가이 작업을 수행하는 올바른 방법이 무엇인지 도와 주시겠습니까?
query_url
스위치 브랜치에 따라 여러 값을 가질 수 있다면 분명히 변수가 필요합니다 ( var
또는로 선언하십시오 let
).
const는 한 번 설정되고 그대로 유지됩니다.
let을 사용한 예제 사용
let query_url = '';
switch(condition) {
case 'complex':
query_url = `something`;
break;
default:
query_url = `something`;
break;
}
케이스를 블록으로 포장 해보십시오.
switch(condition) {
case 'complex': {
const query_url = `something`;
… // do something
break;
}
default: {
const query_url = `something`;
… // do something else
break;
}
}
나는 이러한 종류의 경우에 개인적으로 다음을 선호하고 남용하는 경향이 있습니다.
const query_url = (()=>
{
switch(condition)
case 'complex': return 'something';
default : return 'something-else';
})();
(이를 위해서는 ES6가 필요하거나 Node 4.x에서 "use-strict"를 선언해야합니다.)
업데이트 : 또는 논리가 있는지 또는 간단한 할당인지에 따라 훨씬 더 간결합니다.
const query_url = {complex : 'something'}[condition] || 'something-else';
또한 물론 해당 switch 문에 포함 된 외부 논리의 양에 따라 달라집니다!
switch
return 문을 사용하여 함수에 넣으십시오 .
var condition;
function aSwitch(condition){
switch(condition) {
case 'complex':
return 'something';
default:
return 'something';
}
}
const query_url = aSwitch(condition);
const query_url={
complex:'something complex',
other:'other thing'
}[condition]
단점은 객체에 기본값을 가질 수 없으며 조건에 대한 추가 확인이 필요하다는 것입니다.
반응형
'program story' 카테고리의 다른 글
iOS 용 Google지도 SDK를 사용하려면 '번들 리소스 복사'아래의 대상에 GoogleMaps.bundle이 포함되어야합니다. (0) | 2020.11.22 |
---|---|
Ajax POST 요청에 대한 Laravel csrf 토큰 불일치 (0) | 2020.11.22 |
Node.js가 연결되지 않음 오류 (0) | 2020.11.22 |
Laravel 5+ Ubuntu 14.04에서 500 내부 서버 오류 발생 (0) | 2020.11.22 |
UITextField 최대 길이 설정 (0) | 2020.11.22 |