-1
votes

Affectation variable dans la déclaration de retour, est-ce légal?

Y a-t-il une différence entre 2 blocs de code ci-dessous?

J'aimerais savoir quelle est la meilleure pratique. Est-il légal de déclarer une nouvelle variable dans un énoncé de retour, comme dans le bloc 2 du bloc 2? P>

bloc 1: p>

p>

function caseInSwitch(num) {
  switch (num) {
    case 1:
      return answer = "alpha";
    case 2:
      return answer = "beta";
    case 3:
      return answer = "gamma";
    case 4:
      return answer = "delta";
  }
}
console.log(caseInSwitch(3)); //output gamma
console.log(answer); //output gamma


7 commentaires

Pourquoi pas seulement retourner "alpha" ?


Avec bloc 1, la console.log (réponse); Devrait-il retourner non défini, car il a été défini avec laisse dans la fonction, il n'existe donc pas dans la portée extérieure.avec Block 2, il est égal à définir une variable globale réponse .


@Applejam, vous devriez poster cela comme une réponse


Ni l'un ni l'autre ne ressemble à la "meilleure" pratique. Je voudrais simplement l'écrire donc il est évident ce qui se passe, en utilisant plus d'une ligne si nécessaire.


Mauvaise déclaration: "Les deux [...] donnent le même résultat dans la console". Avez-vous appuyé sur "Exécution de l'extrait de code" au Bloc 1? ;-)


Liée, et vaut la peine de lire: Stackoverflow.com/Questtions/36707/...


Tant qu'il n'y a pas d'erreur dans la console, pourquoi devrait-il être "illégal"?


3 Réponses :


0
votes

Dans le bloc 1, votre code est concatéré deux chaînes ensemble, dans laquelle le bloc 2 Votre code attribue la valeur à la variable. Je suggère d'aller avec le bloc 2 car le bloc 1 n'est pas la meilleure pratique.


0 commentaires

1
votes

Je pense que vous pouvez faire comme suit. Il n'y a rien comme légal. Faire la manière la plus compatible. xxx


0 commentaires

0
votes

À mon avis n'est pas une bonne pratique.

Les deux options utilisent plusieurs chemins de retour, ce qui ne devrait être que fait avec prudence . p>

Votre deuxième option utilise une variable non déclarée qui est donc une variable globale. Les variables gobales sont forts> mauvaises pratiques: Pourquoi les variables globales sont-elles considérées? Mauvaise pratique? p>

Plus de plus, tous les chemins ne renvoient pas une valeur, ceci est à nouveau considéré comme une mauvaise pratique, que doit-on revenir à votre fonction si le paramètre est invalide? Il devrait retourner quelque chose. P>

Melvins Réponse est à peu près comment je le ferais mais je ne voudrais pas t concaténer la chaîne. p>

p>

 function fromArray(num) {
      let answers = ["alpha", "beta", "gamma", "delta"];
      
      return (typeof answers[num-1] === 'undefined') ? "Not Found" : answers[num-1];
    }
    
 function fromAssocArray(num) {
      let answers = {1:"alpha", 2:"beta", 3:"gamma", 4:"delta"};
      
      return answers.hasOwnProperty(num) ?  answers[num] : "N/A";
    }    

    console.log("1 " + fromArray(1));
    console.log("7 " + fromArray(7));
    console.log("---------- Associated Array Below --------------");
    console.log("1 " + fromAssocArray(1));
    console.log("7 " + fromAssocArray(7));


0 commentaires