38 votes

Les affirmations « si » en JavaScript nécessitent-elles des corsets bouclés ?

Possible doublon :
Les bretelles bouclées sont-elles nécessaires dans les instructions d'une seule ligne en JavaScript ?

Je suis presque positif de cela, mais je veux m'assurer d'éviter le code défectueux. En JavaScript, les affirmations simples if ont-elles besoin de supports bouclés ?

if(foo)
    bar;

Est-ce que ça va ?

48voto

OM The Eternity Points 3923

Oui, cela fonctionne, mais seulement jusqu'à une seule ligne juste après une instruction 'if' ou 'else'. Si plusieurs lignes doivent être utilisées, des entretoises bouclées sont nécessaires.

Ce qui suit fonctionnera

if(foo)
   Dance with me;
else
   Sing with me;

Ce qui suit NE FONCTIONNERA PAS comme vous le souhaitez.

if(foo)
   Dance with me;
   Sing with me;
else
   Sing with me;
   You don't know anything;

Mais si ce qui précède est corrigé comme indiqué ci-dessous, alors cela fonctionne pour vous :

if(foo){
   Dance with me;
   Sing with me;
}else{
   Sing with me;
   You don't know anything; 
}

28voto

Pumbaa80 Points 27066

Bien qu'il soit syntaxiquement acceptable de les omettre, vous ne devriez pas. Le seul cas où l'ambiguïté frappe fort est

if (false)
    if (true) foo();
else
    bar();

Cela ne fonctionnera ni foo ni bar puisque le else appartient à la deuxième déclaration if. Pas de problème si des orthèses sont utilisées :

if (false) {
    if (true) { foo(); }
} else {
    bar();
}

7voto

NAVEED Points 16576

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