Erreur en Double Const Déclaration de Commutateur Cas de Déclaration
J'ai le code suivant et j'obtiens le message d'erreur de Déclaration en Double query_url'.
switch(condition) {
case 'complex':
const query_url = `something`;
break;
default:
const query_url = `something`;
break;
}
Je comprends que query_url est arriver a déclaré deux fois, ce qui n'est pas droit. Mais je ne sais pas comment résoudre ce problème. Quelqu'un peut s'il vous plaît aider sur ce que devrait être la bonne façon de faire ce travail?
- Où avez-vous besoin d'utiliser
query_url
? - Si vous avez besoin d'utiliser
query_url
à l'extérieur de laswitch
déclaration, vous ne pouvez pas utiliserconst
. - Voir @Bergi réponse pour la plus utile de la réponse (je ne sais pas pourquoi il est niché au bas de la liste quand il est de loin le plus upvotes)
- Parce qu'il n'était pas accepté comme réponse
Vous devez vous connecter pour publier un commentaire.
si
query_url
peut avoir plusieurs valeurs en fonction de l'interrupteur de la branche, évidemment, vous avez besoin d'une variable ( de déclarer soit avecvar
oulet
).const est réglé une fois, et le reste de cette façon.
exemple d'utilisation avec laissez
query_url
à l'extérieur de l'instruction switch. jsbin.com/givavumolu/edit?html,js,console,sortie Alors profitez de votre downvotequery_url
passé à une autre fonction. Dans ce cas, il n'est pas question quequery_url
est bloc d'étendue, car il est tout simplement une valeur intermédiaire. Vous êtes excessivement sévère.Essayer d'emballage dans le cas des blocs:
query_url
être confiné dans le bloc où elle est définie, qui genre de défaites le but entier de l'attribution à celui-ci?switch
seulement pour sélectionner une seule valeur d'un objet (ouMap
) recherche est mieux adapté pour cette tâche.case
en tant que bloc. Merci pour cette astuce!Personnellement, je préfère (et ont tendance à en abuser) de la suite dans ces sortes de cas:
(cela nécessite ES6 ou déclarant "utilisez-strict" dans l'étape 4.x si)
Mise à jour: Sinon, beaucoup plus compact en fonction de si il n'y a aucune logique là-dedans ou si c'est une simple affectation:
Aussi, bien sûr, dépend de la quantité de l'extérieur à la logique de imbriqués dans ces instructions de commutation!
Il suffit de mettre votre
switch
dans une fonction avec un peu de retour des déclarations :"use strict";
certaines choses étranges se produisent avec votre code. chaque instruction return est de créer/assinging à une variable globale url de la requête.L'inconvénient est que vous ne pouvez pas avoir de défaut d'objet,vous devez avoir plus de vérifier la condition.