42 votes

raccourci Javascript if-else et retour

Le raccourci javascript pour if-else peut-il sortir d'une fonction ? Si oui, comment cela fonctionnerait-il.

par exemple. J'ai ceci:

 if(boolean){
 return;
}

et j'aimerais l'écrire ainsi :

 (value)? return;

Chrome se plaint que le retour est inattendu. Y a-t-il de toute façon à écrire quelque chose comme ça pour que ce soit valide ?

44voto

Darin Dimitrov Points 528142

Non, vous ne pouvez pas le faire à moins de renvoyer une valeur. Par exemple, si votre fonction devait renvoyer une valeur, vous auriez pu écrire :

 return boolean ? 'foo' : 'bar';

Mais vous ne pouvez pas arrêter l'exécution de la fonction en retournant void à l'aide de l'opérateur conditionnel.

29voto

shiplu.mokadd.im Points 28895

Si vous avez l'intention de revenir de la fonction à ce stade de son exécution, que le test évalue vrai ou faux, vous pouvez utiliser,

 return (value) ? 1 : 2;

Mais si vous souhaitez simplement revenir plus tôt lorsqu'un test est évalué à vrai (par exemple, en tant que contrôle d'intégrité pour empêcher l'exécution lorsque les paramètres ne sont pas valides), le plus court que vous pouvez faire est :

 if (boolean) return;

14voto

sapy Points 7
if(boolean) return;

Une seule ligne , lisible , parfaitement valide ;

2voto

Emeeus Points 3255

Je sais que c'est une vieille question, mais je veux ajouter qu'il existe un moyen non standard de sortir d'une fonction en raccourci if-else, et qui exécute l'expression de fonction immédiatement invoquée ( IIFE ):

 function outOfFunction(boolean){

    return (boolean)?(()=>{return true;})():(()=>{return false;})();

}

console.log(outOfFunction(true));
console.log(outOfFunction(false));

Et si nous voulons être hors de la fonction ou continuer avec une autre tâche :

     function shorthandExampleJustTrue(boolean){

        var someVar = "I'm out";        

        return (boolean)?(()=>{return true;})():(()=>{

          console.log("here my code ");

          console.log(someVar);

          return "anythig else";


        })();
    }

console.log(shorthandExampleJustTrue(true));
console.log(shorthandExampleJustTrue(false));

Lorsque nous utilisons des fonctions fléchées, nous pouvons accéder à des variables en dehors du contexte de fonction immédiat.

1voto

Kristian Points 7423

Vous voulez faire un ternary operator

qui est ceci :

 (bool) ? ifTrue : ifFalse;

Remarque : vous ne pouvez pas omettre la partie else d'un opérateur ternaire.

http://en.wikipedia.org/wiki/Ternary_operation

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X