Je pense que vous vouliez poser la question suivante
// Why should I use
if (x) {
do();
}
// instead of
x && do();
ou
// Why should I use
if (x) {
do();
} else {
dont();
}
//instead of
x ? do() : dont()
Comme ils sont écrits, il n'y a pas de différence dans la sortie. Je n'aime pas utiliser le ternaire ou l'opérateur & & dans ces cas en raison de la sémantique de l'utilisation du ternaire et & &. Un ternaire renvoie une valeur que vous n'utilisez pas, tout comme l'expression & &. Par conséquent, je préférerais utiliser la façon dont la langue a l'intention d'être utilisée par les opérateurs.
Cependant, j'aime utiliser & & pour les chèques null
var val = obj && obj.getValue();
Notez que dans ce cas, nous utilisons la valeur de retour de l'expression
En outre, la syntaxe du bloc n'évalue à aucune valeur (Ce n'est pas une expression). L'opérateur ternaire évalue à une valeur. – cdhowie
@meder J'ai mis à jour la question ... –
@cdhowie Oui, mais l'expression ternaire n'est affectée à rien dans mon code, donc ce n'est pas une différence dans ce cas. –